前言: 分析了很多方面的mybatis的源码以及与spring结合的源码,但是难免出现错综的现象,为了使源码陶冶更为有序化、清晰化,特作此随笔归纳下分析过的内容。笔者也为mybatis官方提供过pull request,并被采纳。
名词解释
service层关联:指的是业务层调用数据持久层即dao层的接口,其需要class的配合
注解模式加载:指的是插件通过解析class类中方法上的注解来完成注册dao层接口的组装,比如
@select/@update
等注解mapper配置文件加载:指的是直接读取对应的xml格式mybatis文件,以此来创建数据操作对象org.apache.ibatis.mapping.MappedStatement
SqlSessionFactory
与数据库建立持久层离不开数据源的配置,Spring则通过SqlSessionFactoryBean来进行加载。源码通道>>>Spring mybatis源码篇章-SqlSessionFactoryBean
MappedStatement
与数据库进行交互离不开持久层操作对象,其也是Mybatis的核心概念。有两种方式进行加载
注解模式加载
即如@select|@update|@delete|@insert注解方式加载MappedStatement。源码通道>>>Spring mybatis源码篇章-MybatisDAO文件解析(一)
XML模式加载
即直接解析对应的xml格式配置文件模式加载MappedStatement。源码通道>>>
CRUD节点如何被解析
即对XML配置的select|update|delete|insert节点如何被解析。源码通道>>>Spring mybatis源码篇章-NodeHandler实现类具体解析保存Dynamic sql节点信息
动态SQL语句如何被解析
即对${}和#{}的两种方式如何被解析。源码通道>>>Mybatis源码解析-DynamicSqlSource和RawSqlSource的区别
SqlSessionTemplate
最后我们也要关注下MVC模式中的service层的接口如何调用dao层的MappedStatement接口来完成对数据库的访问操作。源码通道>>>Mybatis源码分析-SqlSessionTemplate
小结
更多的内容可自行查阅官方源码或者官网文档,附上mybatis官网文档地址