MyBatis源码学习
seasonLai
站在巨人的肩膀上,粘贴复制...
github: https://github.com/seasonlai
展开
-
MyBatis源码笔记(一) -- 大致流程
测试代码如下://获得资源文件流mybatis-config.xmlReader reader = Resources.getResourceAsReader("mybatis-config.xml");//创建SqlSessionFactorySqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(r...原创 2018-09-25 17:26:23 · 336 阅读 · 0 评论 -
MyBatis源码笔记(二) -- Configuration类
Configuration是一个贯穿mybatis执行流程的一个类,它记录着所有配置信息,代理类、缓存、插件等等下面列出一些属性public class Configuration { //默认不用驼峰转换 protected boolean mapUnderscoreToCamelCase = false; //默认禁用允许延时加载 protected boole...原创 2018-09-26 15:15:51 · 198 阅读 · 0 评论 -
MyBatis源码笔记(三) -- mapper解析流程
mapper配置有以下几种配置方式<!--1.使用类路径--><mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> ...</mappers><!--2.使用绝对url原创 2018-09-26 15:20:50 · 282 阅读 · 0 评论 -
MyBatis源码笔记(四) -- mapper动态代理
相关参考文章:MyBatis源码笔记(一) – 大致流程MyBatis源码笔记(三) – mapper解析流程DefaultSqlSession中有个getMapper方法,是获取指定类型的代理类public <T> T getMapper(Class<T> type) { return configuration.<T>getMapper(type...原创 2018-09-26 16:05:54 · 213 阅读 · 0 评论 -
MyBatis源码笔记(五) -- <resultMap>节点解析
MyBatis会把XML文件中的节点解析封装成ResultMap,供结果映射使用从XMLMapperBuilder类的resultMapElements方法看起private void resultMapElements(List<XNode> list) throws Exception { //基本上就是循环把resultMap加入到Configuration里去,...原创 2018-09-28 16:33:49 · 382 阅读 · 0 评论 -
MyBatis源码笔记(六) -- 解析SQL语句节点封装为MappedStatement
MyBatis解析XML的SQL语句节点或注解@Select等,最终会封装成MappedStatement对象,存进configuration里,本篇分析XML解析方式从XMLMapperBuilder类的buildStatementFromContext方法开始private void buildStatementFromContext(List&amp;amp;amp;lt;XNode&amp;amp;amp;gt; list) { ...原创 2018-09-28 16:43:18 · 1309 阅读 · 0 评论 -
MyBatis源码笔记(八) -- 插件实现原理
MyBatis的插件开发可参考:MyBatis简单分页插件实现插件实现通过实现MyBatis提供的Interceptor接口public interface Interceptor { //拦截执行 Object intercept(Invocation invocation) throws Throwable; //对对象进行增强 Object plugin(Object tar...原创 2018-10-08 14:50:04 · 342 阅读 · 0 评论 -
MyBatis源码笔记(七) -- insert、update、delete语句的执行
首先要了解MyBatis如何动态代理接口的方法的,和JDBC基本编程参考:MyBatis源码笔记(四) – mapper动态代理执行方法主要封装在MapperMethodpublic class MapperMethod { private final SqlCommand command; private final MethodSignature method; publ...原创 2018-09-30 09:31:53 · 938 阅读 · 0 评论 -
MyBatis整合到Spring的原理
一、整合步骤mybatis整合到spring一般配置如下添加依赖以maven为例,在pom.xml中添加 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.mybatis&amp;lt;/groupId&amp;gt; &amp;lt;artifactId原创 2018-10-25 15:58:43 · 2992 阅读 · 4 评论