当前位置:Gxlcms > 数据库问题 > MyBatis中动态sql的模糊搜索、foreach实现In集合的用法

MyBatis中动态sql的模糊搜索、foreach实现In集合的用法

时间:2021-07-01 10:21:17 帮助过:46人阅读

List<KqDksz> selectKqDkszListBySx(String xm);

xml写法:

  1. <<span style="color: #0000ff;">select</span> id=<span style="color: #800000;">"</span><span style="color: #800000;">selectKqDkszListBySx</span><span style="color: #800000;">"</span> resultMap=<span style="color: #800000;">"</span><span style="color: #800000;">KqDkszResult</span><span style="color: #800000;">"</span>>
  2. <include refid=<span style="color: #800000;">"</span><span style="color: #800000;">selectKqDkszVoJoinJibenXinXi</span><span style="color: #800000;">"</span>/>
  3. <<span style="color: #0000ff;">where</span>>
  4. <<span style="color: #0000ff;">if</span> test=<span style="color: #800000;">"</span><span style="color: #800000;">xm != null and xm != ‘‘</span><span style="color: #800000;">"</span>> and j.xm like concat(<span style="color: #800000;">‘</span><span style="color: #800000;">%</span><span style="color: #800000;">‘</span>, #{xm}, <span style="color: #800000;">‘</span><span style="color: #800000;">%</span><span style="color: #800000;">‘</span>)</<span style="color: #0000ff;">if</span>>
  5. </<span style="color: #0000ff;">where</span>>
  6. </<span style="color: #0000ff;">select</span>>

foreach实现in集合

mapper层接口写法:

  1. <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> deleteKqBcglXiangxiByIds(Long[] ids);

xml写法:

  1. <delete id=<span style="color: #800000;">"</span><span style="color: #800000;">deleteKqBcglXiangxiByIds</span><span style="color: #800000;">"</span> parameterType=<span style="color: #800000;">"</span><span style="color: #800000;">String</span><span style="color: #800000;">"</span>><span style="color: #000000;">
  2. delete </span><span style="color: #0000ff;">from</span> kq_bcgl_xiangxi <span style="color: #0000ff;">where</span> ID <span style="color: #0000ff;">in</span>
  3. <<span style="color: #0000ff;">foreach</span> item=<span style="color: #800000;">"</span><span style="color: #800000;">id</span><span style="color: #800000;">"</span> collection=<span style="color: #800000;">"</span><span style="color: #800000;">array</span><span style="color: #800000;">"</span> open=<span style="color: #800000;">"</span><span style="color: #800000;">(</span><span style="color: #800000;">"</span> separator=<span style="color: #800000;">"</span><span style="color: #800000;">,</span><span style="color: #800000;">"</span> close=<span style="color: #800000;">"</span><span style="color: #800000;">)</span><span style="color: #800000;">"</span>><span style="color: #000000;">
  4. #{id}
  5. </span></<span style="color: #0000ff;">foreach</span>>
  6. </delete>

注意:

这里的参数为数组参数,就需要把collection属性设置为array

但是这是数组默认的名字,推荐使用@Param来指定参数的名字,这时collection就设置为通过@Param注解指定的名字。

比如:

  1. <span style="color: #0000ff;">public</span> List<KqKqrysz> selectKqKqryszListBySx(@Param(<span style="color: #800000;">"</span><span style="color: #800000;">badao</span><span style="color: #800000;">"</span>)Long[] bmids);

对应的是

  1. <<span style="color: #0000ff;">foreach</span> collection=<span style="color: #800000;">"</span><span style="color: #800000;">badao</span><span style="color: #800000;">"</span> item=<span style="color: #800000;">"</span><span style="color: #800000;">item</span><span style="color: #800000;">"</span> open=<span style="color: #800000;">"</span><span style="color: #800000;">(</span><span style="color: #800000;">"</span> separator=<span style="color: #800000;">"</span><span style="color: #800000;">,</span><span style="color: #800000;">"</span> close=<span style="color: #800000;">"</span><span style="color: #800000;">)</span><span style="color: #800000;">"</span>><span style="color: #000000;">
  2. ${item}
  3. </span></<span style="color: #0000ff;">foreach</span>>

 

如果这里不是数组而是list的话,那么其collection默认的就是list而不是array了。

MyBatis中动态sql的模糊搜索、foreach实现In集合的用法

标签:公众号   相关   用法   写法   sel   ids   lis   ngx   ltm   

人气教程排行