广告
返回顶部
首页 > 资讯 > 数据库 >MyBatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合
  • 954
分享到

MyBatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合

摘要

场景 在mapper接口层方法参数有id的数组和姓名的模糊搜索和类型的三个参数。 现在需要将这三个参数传递在动态sql的xml中接受并进行判断不为空。 然后查询数据库中记录在第一个参数id数组中的并且姓名是模糊搜索的并且类型是直接相等于的。


	MyBatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合
[数据库教程]

场景

在mapper接口层方法参数有id的数组和姓名的模糊搜索和类型的三个参数。

现在需要将这三个参数传递在动态sql的xml中接受并进行判断不为空。

然后查询数据库中记录在第一个参数id数组中的并且姓名是模糊搜索的并且类型是直接相等于的。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

mapper层接口写法:

public List selectKqKqryszListBySx(@Param("array")Long[] bmids, String xm, int lx);

 

xml写法:

    <select id="selectKqKqryszListBySx" resultMap="KqKqryszResult">
        SELECT j.id,
        j.xm,
        j.bm,
        k.tszt,
        z.zwgz,
        s.dict_label AS dklx,
        k.bcz,
        k.bc,
        k.zbbc,
        k.ddid,
        k.qysjdk
        from dp_jbxx j LEFT JOIN kq_kqrysz k on j.gh = k.gh
        LEFT JOIN dp_zcxx z ON j.gh = z.gh
        LEFT JOIN kq_dksz d ON j.gh = d.gh
        LEFT JOIN dp_grxx g ON j.gh = g.gh
        LEFT JOIN sys_dict_data s on d.dkzt = s.dict_value
        AND
        s.dict_type="kq_kqgl_dksz_zt"
        <where>
            <if test="array != null">
             and j.bmid in
             <foreach collection="array" item="item" open="(" separator="," close=")">
               ${item}
             foreach>
             if>
            <if test="xm != null  and xm != ‘‘">
             and j.xm like concat(%, #{xm}, %)
             if>
            <if test="lx != null  and lx!= ‘‘"> and g.ryfl = #{lx}if>
        where>
    select>

 

注意:

上面是一些相关的关联查询。

下面的

            <if test="array != null">
             and j.bmid in
             <foreach collection="array" item="item" open="(" separator="," close=")">
               ${item}
             foreach>
             if>

 


就是实现查询id在参数ids这个数组中的。

注意这里的array要与接口方法中@Param("array")一致。

然后这里传递的参数名字if test发判断中直接使用对应接口方法中的参数名,不用使用#{xm}这种的方式,但是在里面的sql语句中要使用这种方式。

mybatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合

原文地址:Https://www.cnblogs.com/badaoliumangqizhi/p/13358165.html

您可能感兴趣的文档:

--结束END--

本文标题: MyBatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合

本文链接: https://www.lsjlt.com/news/7362.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作