场景
在使用MyBatis的动态sql时,常见的是传递一个ID的数组,查询记录的
ID在这个数组中的记录和模糊搜索这两种场景。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
模糊搜索的实现
mapper接口写法:
public List<KqDksz> selectKqDkszListBySx(String xm);
xml写法:
<select id="selectKqDkszListBySx" resultMap="KqDkszResult"> <include refid="selectKqDkszVoJoinJibenXinXi"/> <where> <if test="xm != null and xm != ''"> and j.xm like concat('%', #{xm}, '%')</if> </where> </select>
foreach实现in集合
mapper层接口写法:
public int deleteKqBcglXiangxiByIds(Long[] ids);
xml写法:
<delete id="deleteKqBcglXiangxiByIds" parameterType="String"> delete from kq_bcgl_xiangxi where ID in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete>
注意:
这里的参数为数组参数,就需要把collection属性设置为array
但是这是数组默认的名字,推荐使用@Param来指定参数的名字,这时collection就设置为通过@Param注解指定的名字。
比如:
public List<KqKqrysz> selectKqKqryszListBySx(@Param("badao")Long[] bmids);
对应的是
<foreach collection="badao" item="item" open="(" separator="," close=")"> ${item} </foreach>
如果这里不是数组而是list的话,那么其collection默认的就是list而不是array了。
博客园:
https://www.cnblogs.com/badaoliumangqizhi/
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。