正在回答
同学你好!
关于foreach,myabtis官网的讲解比较少,老师这里给同学列举两个比较常用的
1)如果入参是list,那么collection = "list"
2)如果入参是map,那么collection的值是map的key,比如传递过去的
map.put("ids",new List()),(map的value要是集合,否则无法遍历)这种情况下collection = "ids"
其它情况基本没有用到过呢,在开发中使用list比较多。
第一种多个参数的方式,你可以将数据存在map中传入,(注意此处与上面的循环传递的map不同,循环传递的map的value是一个集合)比如:这种方式老师在后面有讲解呢

xml中直接获取值:

第二种方式,同学后面的参数直接传递一个list集合就可以,然后xml写成老师贴出来的样子。

后面的课程也会有myabtis的案例,这些在后面的课程中,老师都会使用到呢~在使用dao与mapper文件的映射时,就可以直接使用老师贴出来的方式来完成了。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
同学你好。有两种做法。
1、定义多个参数。默认情况下多参数将会以它们的顺序位置和SQL语句中的表达式进行映射。

然后使用
select * from users where id IN (#{id1},#{id2},#{id3});
2、定义传入参数是List<Integer> ids,那么只需要将其遍历到sql中即可:
<select id="findUsers" resultMap="forUsers">
select * from users
<if test="ids != null">
where id in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>foreach标签会自动的生成一个以“(”开头,以“)”结尾,中间用“,”分割,循环的输出传入的list的字符串。
如果解答了同学的疑问,望采纳~
祝学习愉快~
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程



恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星