本文作者:孔维胜,叩丁狼高级讲师。原创文章,转载请注明出处。
基于Mapper接口动态代理实现原理
看文章前的技术要求
在学习MyBatis的初级篇之前,有两个前提要求,第一.必须学会使用IDEA,因为在文章中,使用的工具为IDEA,文章中的案例也都是基于IDEA的。第二.必须学会使用MAVEN,因为在案例中需要的jar包,都是通过MAVEN来管理的。
文章中的案例的开发环境
JDK 1.8
IDEA 2017.3
MySQL 5.1.38
Apache Maven 3.5.0
Tomcat 9.0.6
MyBatis 3.4.6
文章中的案例需要的表和数据
我们使用MyBatis的目的最终是访问数据库,所以在数据库方面,我们先创建相应的数据库,表,导入相关的数据。如:
1.创建mybatis数据库。
2.在mybatis数据库中创建department(部门表)。
DROP TABLE IF EXISTS `department`;
CREATE TABLE `department` (
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '部门ID',
`name` varchar(20) DEFAULT NULL COMMENT '部门名称',
`sn` varchar(20) DEFAULT NULL COMMENT '部门缩写',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
3.准备department(部门表相关的数据)
INSERT INTO `department` VALUES (1, '人力资源', 'HR_DEPT');
INSERT INTO `department` VALUES (2, '销售部', 'SALE_DEPT');
INSERT INTO `department` VALUES (3, '开发部', 'DEVELOP_DEPT');
INSERT INTO `department` VALUES (4, '财务部', 'FINANCE_DEPT');
案例的相关代码
原生DAO的方式
这里就不贴代码了,我们直接看代码图。如:
看源码之前的回顾与思考
回顾:
在看这篇文章之前,我们先来回顾一下,没有使用基于Mapper接口动态代理的方式。我们是通过采用原生DAO的方式来调用Mybatis的接口的。存