![18Mybatis_动态sql_foreach 18Mybatis_动态sql_foreach](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
foreach:
向sql传递数组或List,mybatis使用foreach解析
应用场景:
在用户查询列表和查询总数的statement中增加多个id输入查询。
sql语句如下:
两种方法:
SELECT * FROM USER WHERE id=1 OR id=10 OR id=16
SELECT * FROM USER WHERE id IN(1,10,16)
这样显得很麻烦,所以就有了foreach
做法如下:
1.在输入参数类型中添加List<Integer> ids传入多个id
2. 修改mapper.xml
WHERE id=1 OR id=10 OR id=16
在查询条件中,查询条件定义成一个sql片段,需要修改sql片段。
3.测试代码: