业务场景:前端通过多选框选择多个数据进行导出,这时候我们可以用数组的形式接收选中的id,然后in使用。
mybatis提供的构造器可以很简单的实现,这里主要说一下关于自定义sql的处理。
注解方式和xml其实差不多,大伙看个核心就好。
@Select({"<script>" +
" select * from 表 where id in
<foreach collection='传入参数ids' item='表字段(我用的主键id)' open='(' separator=',' close=')'>
#{id} --{表字段(我用的主键id)}
</foreach>" +
" </script>"})
List<AgentWebVO> selectExport(@Param(value = "ids") List<Long> ids传入参数);
这里传入的是list集合,所以我们把数组先转成集合就行了,也可以直接传集合进来啥的。
List<Long> ids = Stream.of(数组).collect(Collectors.toList());
sql里记住,用了标签一定要在外层加
<foreach collection='传入参数' item='id' open='(' separator=',' close=')'>
#{id}
</foreach>
只需要改变id和传入参数就行,其他的保持不变即可用