Mybatis Mapper动态代理方法 即 只写Dao接口 不写Dao的实现类
2016-09-13 09:53
260 查看
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。
1.1 第一步:开发mapper.xml映射文件
为了让mapper.xml和mapper.Java对应起来,将mapper.xml中的namespace设置为mapper.java的全限定名。<mapper namespace="com.zwsafety.module.monitor.dao.DpaDetAlarmMapper" >
1.2 第二步:开发mapper.java接口
Mybatis生成代理对象时,根据statement的标签决定调用 SqlSession的方法(select、insert、update..)根据上边接口方法返回值 类型来决定 是调用 selectOne还是selectList,如果返回的是单个对象,动态代理调用selectOne(),如果返回的是集合对象,动态代理调用selectList()。
1.3 Mapper开发规则
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保持一致
1.4 小结
在企业中使用原始dao开发仍然的是很多的,主要是由于前期使用ibatis。建议使用mybatis动态代理方法,好处不用写实现类,开发快捷。使用动态代码方法需要遵循上边四点规范
原文地址:http://blog.csdn.net/liuqiang211/article/details/47338895
相关文章推荐
- Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类
- Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类
- Java动态代理实现接口方法
- asp.net通过实现IHttpHandler接口方法给图片添加水印图片(动态添加,不破坏原图片,但是耗资源)
- JDK的动态代理实现调用拦截器中的方法
- java实现动态代理方法浅析
- 动态代理1 (JDK 需要实现接口)
- 动态代理的实现2-编写可生成代理和插入通告的通用方法 .
- JAVA动态代理实现方法
- 动态代理的实现2-编写可生成代理和插入通告的通用方法
- JDK的动态代理为什么要实现所有的接口?
- 策略设计模式:父类持有接口成员变量,动态设定接口成员实现类,动态改变方法
- InvocationHandler接口实现动态代理
- JDK的动态代理实现调用拦截器中的方法
- Java动态代理的两种实现方法
- Spring的AOP实现使用的JDK的动态代理必须使用接口
- 用Annotation,Future,动态代理实现自己的JAVA方法运行超时应用
- 动态代理的实现2-编写可生成代理和插入通告的通用方法
- Castle~动态代理实现对方法的拦截
- 转 MyBatis Mapper 接口如何通过JDK动态代理来包装SqlSession 源码分析