`

手写MyBatis,纯手工打造开源框架(第一篇:风云再起)

阅读更多

前言

通过前面几篇文章的介绍,想必大家对于MyBatis有了一个比较深的认知了,分析了原理之后,那么手写一个MyBatis就很简单了,当然要写成官方性能这么高的,是需要比较深的技术功底了。

编码核心对象分析

       根据前面的文章,我们先分析一下要自己手写一个MyBatis几个不可少的核心对象:

(1)SqlSessionFactoryBuilder:用于构建SqlSessionFactory的。

(2)SqlSessionFactory : 用于管理SqlSession的。

(3)SqlSession:让开发人员方便操作数据库的。

(4)Executor:真正和数据库进行交互的。

(5)MapperProxy:mapper接口的代理类。

(6)MapperStatement:用于保存xml配置的mapper信息。

 

编码核心流程分析

       为了更好的理解,我们将整个流程分为3个阶段:

(1)初始化阶段:解析配置文件(mybatis-config.xml)构建SqlSessionFactory。

(2)代理阶段:封装MyBatis的编程模型,使用mapper接口开发。

(3)数据读写阶段:通过SqlSession完成SQL的解析,参数的映射,SQL的执行。

(1)如何解析配置文件?

       .propeties文件的解析:可以使用Properties进行解析。

       .xml文件的解析:可以使用JDom、 Dom4J、SAX

(2)MapperProxy

       这个通过上面分析的话,就很简单了,只要使用动态代理构建一个代理类就可以了。

(3)数据库读写

 

       数据库读写的话,这个就是原生的jdbc进行执行SQL语句,在返回的数据中使用Java的反射技术组装成一个实体类对象即可。

 

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics