mybatis的mapper映射文件中where,if,foreach等的使用

一身转战三千里,一剑曾当百万师。这篇文章主要讲述mybatis的mapper映射文件中where,if,foreach等的使用相关的知识,希望能为你提供帮助。

< ?xml version="1.0" encoding="UTF-8" ?> < !DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> < !-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 --> < mapper namespace="com.it.mapper.UserMapper"> < sql id="selectUser"> SELECT * FROM `user` < /sql> < !-- 根据多个ID查用户信息 --> < select id="selectUsersByIds" parameterType="com.it.entity.QueryVo" resultType="com.it.entity.User"> < include refid="selectUser"/> < where> < foreach collection="idsList" item="id" separator="," open="id in (" close=")"> #{id} < /foreach> < /where> < /select> < /mapper>

UserMapper的映射文件
package com.it.mapper; import java.util.List; import com.it.entity.QueryVo; import com.it.entity.User; public interface UserMapper {public User queryUserById(Integer id); public List< User> findUserByQueryVo(QueryVo vo); //根据多个id查询用户信息 public List< User> selectUsersByIds(QueryVo vo); }

【mybatis的mapper映射文件中where,if,foreach等的使用】Usermapper接口
package com.it.test; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import com.it.entity.QueryVo; import com.it.entity.User; import com.it.mapper.UserMapper; public class MapperTest {@Test public voidtestfindUsersByIds() throws Exception{ //加载配置文件 String resource = "SqlMapConfig.xml"; InputStream in = Resources.getResourceAsStream(resource); //创建sessionFactory SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in); //创建sqlSession SqlSession sqlSession = sessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List< Integer> ids = new ArrayList< Integer> (); ids.add(10); ids.add(16); ids.add(22); QueryVo vo = new QueryVo(); vo.setIdsList(ids); List< User> users = userMapper.selectUsersByIds(vo); for (User user : users) { System.out.println(user); } } }

测试方法testfindUsersByIds

    推荐阅读