1.Mybatis的高级用法(集合参数)
foreach标签属性说明:
- collection 表示遍历的集合类型
1.1 数组 关键字array
1.2 List集合 关键字list
1.3 Map集合 关键字Map中的key- open 循环开始标签
close 循环结束标签- separator 分割符
- item 当前循环遍历的数据的变量
1.1 数组方式
1.1.1 需求:查询id号1,2,4,5,7的数据(数组方式)
sql语句: select * from demo_user where id in(1,2,4,5,7)
- UserMapper2接口中的操作
List<User> findIn(int[] ids);
- UserMappe2.xml中的操作
<sql id="user_column">
id,name,age,sex
</sql>
<!--
标签属性说明:
1.collection 表示遍历的集合类型
1.1 数组 关键字array
1.2 List集合 关键字list
1.3 Map集合 关键字Map中的key
2.open 循环开始标签
close 循环结束标签
3.separator 分割符
4.item 当前循环遍历的数据的变量
-->
<select id="findIn" resultType="User">
select <include refid="user_column"></include> from demo_user where id in
<foreach collection="array" item="id" open="(" close=")" separator=",">
#{
id}
</foreach>
</select>
- 测试
/*业务:查询id号为1,2,4,5,7的数据*/
@Test
public void findUserIn(){
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper2 userMapper2=sqlSession.getMapper(UserMapper2.class);
int[] ids={
1,2,4,5,7};
List<User> user=userMapper2.findIn(ids);
System.out.println(user);
sqlSession.close();
}
1.2 list方式
1.2.1 需求:查询id号1,2,4,5,7的数据(list方式)
sql语句: select * from demo_user where id in(1,2,4,5,7)
- UserMapper2接口中的操作
List<User> findList(List list);
- UserMappe2.xml中的操作
<select id="findList" resultType="User">
select <include refid="user_column"></include> from demo_user where id in
<foreach collection="list" item="id" open="(" close=")" separator=",">
#{
id}
</foreach>
</select>
- 测试
/*业务:查询id号为1,2,4,5,7的数据*/
@Test
public void findUserL(){
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper2 userMapper2