Mybaits之Mapper动态代理开发

开发规范:

  Mapper接口开发方法只需要程序员与Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法同平常写的Dao接口实现类的方法。

Mapper接口开发需要遵循以下规范:

  1、Mappper.xml文件中的namespace与mapper接口的类路径相同

  2、Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

  3、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同

  4、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

package deep.mapper;import deep.pojo.Account;public interface UserMapper {//遵循四个原则//接口方法名 == Account.xml 中的 id名//返回值类型 与 Mapper.xml文件中的返回值类型要一致//方法的入参类型要与Mapper.xml文件中入参的类型要一致//命名空间绑定此接口(Account.xml 中的 mapper 中的 namespace = “deep.mapper.UserMapper”)public Account findUserById(Integer id);
}

<mapper namespace="deep.mapper.UserMapper"><select id="findUserById" parameterType="Integer" resultType="deep.pojo.Account">select * from account where id = #{v}</select>....
</mapper>    

package deep.junit;import java.io.InputStream;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import deep.mapper.UserMapper;
import deep.pojo.Account;public class MyBatisMapperTest {@Testpublic void testMapper() throws Exception {//加载核心配置文件InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);SqlSession sqlSession = sqlSessionFactory.openSession();//SqlSession帮我生成一个实现类(给接口)UserMapper userMapper = sqlSession.getMapper(UserMapper.class);Account account = userMapper.findUserById(27);System.out.println(account);}
}

小结:

♦selectOne和selectList

  动态代理对象调用sqlSession.selectOne()和sqlSession.selectList()是根据mapper接口方法的返回值决定,如果返回list则调用selectList方法,如果返回单个对象则调用selectOne()方法。

♦namespace

  mybatis官方推荐使用mapper代理方法开发mapper接口,程序员不用编写mapper接口实现类,使用mapper代理方法时,输入参数可以使用pojo包装对象或map对象,保证dao的通用性。

转载于:https://www.cnblogs.com/deepSleeping/p/10453203.html

Mybaits之Mapper动态代理开发相关推荐

  1. MyBatis之Mapper动态代理开发

    MyBatis之Mapper动态代理开发 2017/9/30 1.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder ...

  2. Mapper动态代理开发所要遵循的四个原则

    ①.接口方法名与映射文件中Mapper.xml中id名一致. ②.返回值类型与Mapper.xml文件中返回值类型一致 ③.方法的入参类型与Mapper.xml中的入参的类型一致 ④.命名空间 绑定此 ...

  3. 【Mybatis学习笔记】Mapper动态代理四项原则和注意事项

    如果使用原始的DAO,要自己对其进行实现,而如果使用Mybatis的Mapper动态代理,就可以让Mybatis自动帮你实现DAO接口. Mapper动态代理的四项原则 1.接口方法名需要与Mappe ...

  4. Mybatis DAO开发--Mapper动态代理开发方式

    Mybatis DAO开发–Mapper动态代理开发方式 第一步:jar包 创建lib目录,引入相应的jar包,本节课用到的案例引入的jar包就是spring整合mybatis要用到的全部jar包. ...

  5. 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)

    1.原始Dao开发方式 原始Dao开发方法需要程序员编写Dao接口和Dao实现类. 1.映射文件:(user.xml) <?xml version="1.0" encodin ...

  6. Mybatis中Mapper动态代理方式

    文章目录 开发规范 Mapper接口开发需要遵循以下规范 Mapper.xml(映射文件) UserMapper(接口文件) 加载UserMapper.xml文件 总结 selectOne和selec ...

  7. Mybatis Mapper动态代理方式 typeAliases 别名的使用

    目录结构及配置文件与原始dao方法相比更简便 只需一个UserMapper的接口,放在一起的配置文件,配置文件中namespace的地址确定jdk动态代理的对象 <?xml version=&q ...

  8. 【Java】Mybatis mapper动态代理方式

    前言 我们在使用Mybatis的时候,获取需要执行的SQL语句的时候,都是通过调用xml文件来获取,例如:User user = (User) sqlSession.selectOne("c ...

  9. Spring 整合Mybatis Mapper动态代理方法

    先看项目目录结构 很清爽了 最重要的Spring的核心配置文件,看一下 <?xml version="1.0" encoding="UTF-8"?> ...

最新文章

  1. sersync 文件同步系统(一) 服务初步搭建
  2. Excel表格快速将公式运用到一整列
  3. java 空语句_Java空语句怎么写才正确?这样的Java基础知识才是你需要的
  4. 不定积分24个基本公式_高分攻略丨语文阅读理解的24个万能答题公式
  5. @autowired注解_SpringBoot常用注解大全
  6. Win32串口操作的技巧
  7. 如何在多台web服务器上共享session?
  8. python函数递归年龄_Python学习笔记4-递归函数
  9. #1181 : 欧拉路·二(无向图的欧拉路)
  10. isc-dhcp监听网口的实现步骤
  11. python基础 函数 (四)
  12. java和python对比----1:
  13. 自定义view圆环的改变
  14. 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法
  15. java线程状态切换图
  16. mysql实现翻页功能
  17. 怎样用C语言sinx的曲线长度,Javascript 绘制 sin 曲线过程附图
  18. python3d_Power BI将超越python和D3,成为数据可视化的福音、定性数据分析的未来?...
  19. 外观模式 Facade
  20. JavaScript中Unicode编码和中文相互转换

热门文章

  1. 如何用word写书_如何用vba在word中添加打勾的方框?
  2. linux 内存占满 top找不到进程_检查Linux内存占用的 5 大命令,你知道几个?
  3. QAdmin轻量级后台HTML模板 1.5
  4. 领航服务器系统,应用领航:盘点那些年我们一起追过的OS
  5. tp6 使用lock_tp5 lock的使用
  6. WebService传输DataSet的一点想法和实践-.NET教程,Web Service开发
  7. 无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
  8. codesmith 模板
  9. 招商银行网站在chrome中 布局出现大问题,如图
  10. CSS3 Flexbox轻松实现元素的水平居中和垂直居中