1、利用 Stream 将 List 转化为 Map
Map<String, User> userMap = userList.stream().collect(
Collectors.toMap(User::getName, Function.identity());
2、Mybatis 中使用 foreach 标签配合 in 查询语句
<if test="sources != null">
and e.source in
<foreach item="item" index="index" collection="sources" open="(" separator="," close=")">
#{item}
</foreach>
</if>
其中 index 是指当前迭代的次数,item 是指当前迭代的元素,open 表示开始的符号,close 作为结束的符号,separator 表示迭代的间隔符。
需要注意的是:
- 如果传入的是单参数且参数类型是一个 List 的时候,collection 属性值为 list
- 如果传入的是单参数且参数类型是一个 array 数组的时候,collection 的属性值为 array
- 如果传入的参数是多个的时候,我们就需要把它们封装成一个 Map 了,当然单参数也可以。
3、在使用 like 进行模糊查询时,尽量不要吧 % 放在前面,这样不会走索引。