MyBatis动态SQL的foreach标签
向sql传递数组或List,mybatis使用foreach解析,如下:
根据多个id查询用户信息 SELECT * FROM user WHERE id IN (1,10,24)
步骤一: 改造QueryVo 如下图在pojo中定义list属性ids存储多个用户id,并添加getter/setter方法
步骤二: UserMapper.xml添加sql
SELECT * FROM `user`
#{item}
测试方法如下图:
@Test
public void testQueryUserByIds() {
// mybatis和spring整合,整合之后,交给spring管理
SqlSession sqlSession = this.sqlSessionFactory.openSession();
// 创建Mapper接口的动态代理对象,整合之后,交给spring管理
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 使用userMapper执行根据条件查询用户
QueryVo queryVo = new QueryVo();
List ids = new ArrayList();
ids.add(1);
ids.add(10);
ids.add(24);
queryVo.setIds(ids);
List list = userMapper.queryUserByIds(queryVo);
for (User u : list) {
System.out.println(u);
}
// mybatis和spring整合,整合之后,交给spring管理
sqlSession.close();
}
运行结果如下图: