MyBatis 之 mapper 代理方式。mapper 代理使用的是 JDK 的动态代理策略
mapper 的规范:
1:接口的全限定名要和 mapper 映射文件的 namespace 一致
2:接口的名称要和 mapper 映射文件的 id 相同
3: 接口的方法返回类型和 mapper 映射文件返回的类型一致
4:接口的方法返回类型和 mapper 映射文件输入类型要一致
按照以前的 DAO 开发模式 我们有一个写了一个接口类 然后需要写这接口的实现类
现在就是 MyBATis 通过帮我们生成了这个实现了。而我们要做的就是配置好这实现类的 XML。 也就是说 使用了 mybatis 开发中不需要写数据库的实现类 而只要实现接口 所有的实现又 mybatis 的配置文件去生成。
举个例子 : 现在有一个接口类
- public interface UserMapper {
- User findUserById(String id);
- }
然后直接在当前文件包名下创建一个 XML 叫做 UserMapper.xml
- <?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">
- <!-- 命名空间 -->
- <!-- 在mapper代理是 mapper 有特殊重要作用 -->
- <mapper namespace="com.demo.dao.mapper.UserMapper">
- <!--select 表示一个mappedStatement 对象 -->
- <!--#{}里面的ID表示输入参数的参数名称 如果是简单类型 那么#{}参数名称任意 -->
- <select id="findUserById" parameterType="String" resultType="com.demo.User">
- SELECT * FROM USER WHERE id=#{id}
- </select>
- </mapper>
这个就相当于 UserMapper 接口的实现类
通过 UserMapper dao= sqlSession.getMapper(UserMapper.class); 拿到代理对象 直接调动就实现了数据库查询。
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: