標籤:open include pack close 命名 使用者 res sql 載入
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//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等的使用