mybatis的mapper动态代理方法
来源:互联网 发布:7u分享网络不能提现吗 编辑:程序博客网 时间:2024/06/07 22:31
Mapper动态代理方法:程序员只需要写dao接口(Mapper),而不需要写dao实现类,由mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象。可以调用代理对象方法。
Mybatis官方建议:将dao接口叫做mapper。
目标:通过一些规则让mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象
mybatis将以下代码自动在代理对象实现:
User user = sqlSession.selectOne("test.findUserById", id);
如何让mapper接口找到mapper.xml中statement的id。
工程结构
第一步:开发mapper.xml映射文件
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.mo.dao.UserMapper"><select id="findUserById" parameterType="int" resultType="com.mo.pojo.User">SELECT * FROM USER WHERE id = #{id}</select></mapper>
为了让mapper.xml和mapper.java对应起来,将mapper.xml中的namespace设置为mapper.java全类名
<mapper namespace="com.mo.dao.UserMapper">
第二步:开发mapper.java接口
mapper.java接口文件命名规则为:XXXMapper.xml
public interface UserMapper {User findUserById(int id);}
mybatis生成代理对象时,根据XXXMapper.xml配置文件中statement标签来决定 调用SqlSession方法(select、insert、update..)
根据上边接口方法返回值类型来决定 是调用 selectOne还是selectList,如果返回的是单个对象,动态代理调用selectOne(),如果返回的是集合对象,动态代理调用selectList()。
Mapper.xml开发规则
1、 在mapper.xml中将namespace设置为mapper.java的全限定名
2、 将mapper.java接口的方法名和mapper.xml中statement的id保持一致。
3、 将mapper.java接口的方法输入参数类型和mapper.xml中statement的parameterType保持一致
4、 将mapper.java接口的方法输出 结果类型和mapper.xml中statement的resultType保持一致
- mybatis的mapper动态代理方法
- MyBatis---mapper动态代理
- MyBatis的Mapper接口动态代理
- MyBatis之Mapper动态代理
- Mybatis之Mapper动态代理
- Mybatis之Mapper动态代理
- Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类
- Mybatis Mapper动态代理方法 即 只写Dao接口 不写Dao的实现类
- Mybatis Mapper动态代理方法 即 只写Dao接口 不写Dao的实现类
- Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类
- Mybatis之mapper代理方法
- Mybatis中mapper代理方法
- mapper代理方法开发mybatis
- Mybatis中Mapper动态代理的实现原理
- Mybatis源码中Mapper的动态代理实现原理
- Mybatis源码分析(一)--Mapper的动态代理
- Mybatis中Mapper动态代理的实现原理
- 【SpringMVC+mybatis】6.mybatis mapper代理方法
- 斯考特·杨(Scott Young)快速学习方法
- E-R图及实例
- const,全局变量
- java基础--4.常用类-5.正则表达式
- linux基本命令 创建文件 touch
- mybatis的mapper动态代理方法
- Java中@Override的作用
- Leetcode学习(13)—— Next Greater Element I
- window环境下Caffe手写体数据预测
- Command模式
- 历届试题 翻硬币
- AOJ.868 窗口
- 什么是死锁?如何避免死锁?
- 第2章 Docker的核心概念和安装