一、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(1);
System.out.println(user);
//关闭资源
sqlSession.close();
}