纯手写一个mybatis的框架(jdk的动态代理)
2018-11-01 15:40
204 查看
1:项目结构如下。
2:pom.xml文件引入如下jar包
3:先运行一下,看看效果
4:代码分析
4.1:编写一个UserMapper接口,以及User的实体类
4.2:在项目中导入与UserMapper接口对应的UserMapper.xml(这个是我通过逆向工程工具生成的,源码百度一大把)
4.3:编写一个MappedStatement的类,该类的作用,是将UserMapper.xml里面的一些属性,放入该类中,再看一下UserMapper.xml的文件
然后对应MappedStatement类里面的四个属性(get/set方法自动补全,这里省略截图)
4.4:编写Configuration类,该类的作用为:先将jdbc.properties的四个连接数据库的字段拿进来,然后把MappedStatement放入一个HashMap中,以便后期动态代理拿到方法(get/set方法省略)
4.5:依葫芦画瓢,编写一个Sqlsession接口,因为mybatis的对外api就是Sqlsession
4.6:编写一个Sqlsession的默认实现,DefaultSqlsession
4.7:编写SqlsessionFactory,将配置文件jdbc.properties和UserMapper.xml加载进来
4.8:编写mybatis底层实际调用的Excutor接口
4.9:编写其默认实现
4.10:编写工具类ReflectionUtil
4.11:编写动态代理MapperProxy
阅读更多
相关文章推荐
- 【干货】JDK动态代理的实现原理以及如何手写一个JDK动态代理
- Mybatis之拦截器原理(jdk动态代理优化版本)
- JDK动态代理的一个例子
- Jdk 动态代理(一个实际案例使用)
- 一个简单 JDK 动态代理的实例
- 手写JDK动态代理
- JAVA JDK 动态代理以及Mybatis的理解
- MyBATIS插件原理第一篇——技术基础(反射和JDK动态代理)
- JDK动态代理与cglib的使用以及对其效率的统计,以及Mybatis中动态代理的使用
- 一个简单的例子模拟JDK动态代理
- JDK动态代理、责任链在mybatis中的应用
- 如何写一个RPC框架(二):利用Bean容器和动态代理简化客户端代码
- JDK动态代理 - 实现一个最简单的代理demo附赠代码解析
- Mybatis之拦截器原理(jdk动态代理优化版本)
- SSM框架day02-MyBatis——032——mapper的动态代理
- 10、对于JDK动态代理的一个简单封装ProxyUtil的使用
- 如何利用动态代理技术构建一个通用的,获取代理类的简单框架?
- SSM框架day01——021——JDK动态代理模式、022-JDK动态代理模式的实现
- 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式
- java的动态代理,jdk动态代理,一个Sping AOP的简单实现