Mybaits之Mapper动态代理开发
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动态代理开发相关推荐
- MyBatis之Mapper动态代理开发
MyBatis之Mapper动态代理开发 2017/9/30 1.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder ...
- Mapper动态代理开发所要遵循的四个原则
①.接口方法名与映射文件中Mapper.xml中id名一致. ②.返回值类型与Mapper.xml文件中返回值类型一致 ③.方法的入参类型与Mapper.xml中的入参的类型一致 ④.命名空间 绑定此 ...
- 【Mybatis学习笔记】Mapper动态代理四项原则和注意事项
如果使用原始的DAO,要自己对其进行实现,而如果使用Mybatis的Mapper动态代理,就可以让Mybatis自动帮你实现DAO接口. Mapper动态代理的四项原则 1.接口方法名需要与Mappe ...
- Mybatis DAO开发--Mapper动态代理开发方式
Mybatis DAO开发–Mapper动态代理开发方式 第一步:jar包 创建lib目录,引入相应的jar包,本节课用到的案例引入的jar包就是spring整合mybatis要用到的全部jar包. ...
- 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
1.原始Dao开发方式 原始Dao开发方法需要程序员编写Dao接口和Dao实现类. 1.映射文件:(user.xml) <?xml version="1.0" encodin ...
- Mybatis中Mapper动态代理方式
文章目录 开发规范 Mapper接口开发需要遵循以下规范 Mapper.xml(映射文件) UserMapper(接口文件) 加载UserMapper.xml文件 总结 selectOne和selec ...
- Mybatis Mapper动态代理方式 typeAliases 别名的使用
目录结构及配置文件与原始dao方法相比更简便 只需一个UserMapper的接口,放在一起的配置文件,配置文件中namespace的地址确定jdk动态代理的对象 <?xml version=&q ...
- 【Java】Mybatis mapper动态代理方式
前言 我们在使用Mybatis的时候,获取需要执行的SQL语句的时候,都是通过调用xml文件来获取,例如:User user = (User) sqlSession.selectOne("c ...
- Spring 整合Mybatis Mapper动态代理方法
先看项目目录结构 很清爽了 最重要的Spring的核心配置文件,看一下 <?xml version="1.0" encoding="UTF-8"?> ...
最新文章
- sersync 文件同步系统(一) 服务初步搭建
- Excel表格快速将公式运用到一整列
- java 空语句_Java空语句怎么写才正确?这样的Java基础知识才是你需要的
- 不定积分24个基本公式_高分攻略丨语文阅读理解的24个万能答题公式
- @autowired注解_SpringBoot常用注解大全
- Win32串口操作的技巧
- 如何在多台web服务器上共享session?
- python函数递归年龄_Python学习笔记4-递归函数
- #1181 : 欧拉路·二(无向图的欧拉路)
- isc-dhcp监听网口的实现步骤
- python基础 函数 (四)
- java和python对比----1:
- 自定义view圆环的改变
- 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法
- java线程状态切换图
- mysql实现翻页功能
- 怎样用C语言sinx的曲线长度,Javascript 绘制 sin 曲线过程附图
- python3d_Power BI将超越python和D3,成为数据可视化的福音、定性数据分析的未来?...
- 外观模式 Facade
- JavaScript中Unicode编码和中文相互转换
热门文章
- 如何用word写书_如何用vba在word中添加打勾的方框?
- linux 内存占满 top找不到进程_检查Linux内存占用的 5 大命令,你知道几个?
- QAdmin轻量级后台HTML模板 1.5
- 领航服务器系统,应用领航:盘点那些年我们一起追过的OS
- tp6 使用lock_tp5 lock的使用
- WebService传输DataSet的一点想法和实践-.NET教程,Web Service开发
- 无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
- codesmith 模板
- 招商银行网站在chrome中 布局出现大问题,如图
- CSS3 Flexbox轻松实现元素的水平居中和垂直居中