首页 > 代码库 > 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); }
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 void testfindUsersByIds() 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
mybatis的mapper映射文件中where,if,foreach等的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。