注意:此处只写了foreach
的最核心部分,动态sql 注解开发需要在最外层嵌套<script>
标签,并且对里面的一些引号进行转意(最下方有示例)
select * from user where 1=1 and
<foreach item="id" collection="ids"
open="(" separator="or" close=")">
#{id}
</foreach>
实体中有字段为 ids 的数组
循环后输出的内容:(id=1 or id=2 or id=3)
item
为 sql 中映射的字段名
collection
外面传来的数组,如果直接传一个 list
,collection = “list”
即可(具体自测)
open
起始字符
separator
分隔符
close
结束符
- 示例
@Insert("<script>" +
"insert into choice_modular " +
"(pro_id, modular) " +
"values " +
// "(#{proId}, #{modular}) " +
"<foreach item=\"id\" collection=\"modular\" separator=\",\" >" +
"(#{proId},#{id})" +
"</foreach>" +
"ON DUPLICATE KEY UPDATE " +
"deleted = 1" +
"</script>")
int addChoiceModular(long proId, List<Long> modular);