一、Mapper代理的開發規範
1、Mapper代理開發概述
(1)Mapper代理開發,即開發mapper接口,的、相當于dao接口
(2)Mapper代理使用的是jdk的代理政策
2、Mapper代理開發規範
(1)mapper接口的全限定名要和mapper映射檔案的namespace值一緻
(2)mapper接口的方法名稱要和mapper映射檔案的statement的id一緻
(3)mapper接口的方法參數類型要和mapper映射檔案的statement的parameterType的值一緻,而且它的參數是一個
(4)mapper接口的方法傳回值類型要和mapper映射檔案的statement的resultType的值一緻
二、Mapper代理開發步驟
1、編寫mapper接口
(1)mapper接口代碼:
public interface UserMapper {
/**
* 通過ID查詢
* @param id
* @return
*/
public User findUserById(int id);
/**
* 根據條件查詢使用者清單
* @param vo
* @return
*/
public List<User> findUserList(UserQueryvo vo);
/**
* 查詢使用者的總數
* @param vo
* @return
*/
public int findUserCount(UserQueryvo vo);
}
2、編寫mapper映射檔案
(1)mapper映射檔案:
在config下建立mapper目錄然後建立UserMapper.xml(這是mybatis的命名規範,當然,也不是必須是這個名稱)
(2)代碼如下:
<?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:需要和mapper接口的全限定名一緻 -->
<mapper namespace="com.san.mapper.UserMapper">
<!-- 通過ID查詢使用者 -->
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id=#{id}
</select>
</mapper>
3、加載mapper映射檔案
(1)在全局配置檔案SqlMapConfig.xml中加載映射檔案
(2)代碼如下:
<!-- 加載外部配置檔案 -->
<mappers>
<mapper resource="User.xml"></mapper>
<!-- 加載使用mapper接口實作的配置檔案-->
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
4、測試代碼
@Test
public void Test1() throws IOException{
String resource="SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//sqlSession,它的内部含有一塊資料區域,存線上程不安全,是以聲明在方法内部
SqlSession sqlSession = sqlSessionFactory.openSession();
//建立UserMappper對象
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
//執行查詢語句
User user=userMapper.findUserById();
System.out.println(user);
//關閉資源
sqlSession.close();
}