随笔分类 - mybatis源码解析
摘要:说完了StatementHandler和ParameterHandler,接下来就需要对查询的结果进行处理了,而对于sql结果的处理是由ResultSetHandler处理的,ResultHandler位于mybatis包的 org.apache.ibatis.executor.resultset下
阅读全文
摘要:ParameterHandler接口是参数处理器,位于mybatis包的org.apache.ibatis.executor.parameter下,源码如下: 可见ParameterHandler接口只有简单的两个方法,一个是获取参数一个是设置参数。ParameterHandler接口默认实现类是D
阅读全文
摘要:从前面分析我们知道了sql的具体执行是通过调用SqlSession接口的对应的方法去执行的,而SqlSession最终都是通过调用了自己的Executor对象的query和update去执行的。本文就分析下sql的执行器 Executor Executor是mybatis的sql执行器,SqlSes
阅读全文
摘要:上一篇文章分析到mapper.xml中的sql标签对应的MappedStatement是如何初始化的,而之前也分析了Mapper接口是如何被加载的,那么问题来了,这两个是分别加载的到Configuration中的,那么问题来了,在使用过程中MappedStatement又是如何和加载的mapper接
阅读全文
摘要:上一篇我们了解到了MappedStatement类就是mapper.xml中的一个sql语句,而Configuration初始化的时候会加载所有的mapper接口类,而本篇再分析下是如何将mapper接口和xml进行绑定的。 先从上一篇的源码开始分析: 如果猜的没错的话,那么第9行和第10行就是解析
阅读全文
摘要:MappedStatement类位于mybatis包的org.apache.ibatis.mapping目录下,是一个final类型也就是说实例化之后就不允许改变 MappedStatement对象对应Mapper.xml配置文件中的一个select/update/insert/delete节点,描
阅读全文
摘要:在开始分析mybatis源码之前,需要定一个目标,也就是我们不是为了读源码而去读,一定是带着问题去读,在读的时候去寻找到答案,然后再读码的同时整理总结,学习一些高级的编码方式和技巧。 首先我们知道mybatis是一个持久层框架,封装了JDBC的一切操作,使得程序在进行JDBC操作时不需要再关注底层是
阅读全文
摘要:StatementHandler解析 接口的作用是statement处理器,位于mybatis包的org.apache.ibatis.executor.statement目录下,源码如下: 可见StatementHandler的作用就是先通过prepare方法构建一个Statement对象,然后再调
阅读全文
摘要:由之前解析可知,mybatis启动的时候会加载XML配置文件解析生成全局配置对象Configuration对象,SqlSessionFactoryBuilder类会根据Configuration对象创建一个DefaultSqlSessionFactory对象,而DefaultSqlSessionFa
阅读全文
摘要:Configuration类解析 Configuration类位于mybatis包的org.apache.ibatis.session目录下,是mybatis的全局变量,属性就是对应于mybatis的全局配置文件mybatis-config.xml的配置,将XML配置中的内容解析赋值到Configu
阅读全文
摘要:1.XMLConfigBuilder XMLConfigBuilder类位于Mybatis包的org.apache.ibatis.builder.xml目录下,继承于BaseBuilder类,关于BaseBuilder类后续再看。 XMLConfigBuilder看名字能猜到是关于mybatis的X
阅读全文
摘要:1.先看一个mybatis最简单的Demo 1.通过InputStream获取mybatis的配置文件 2.通过SqlSessionFactoryBuilder创建SqlSessionFactory 3.通过SqlSessionFactory创建一个SqlSession 4.通过SqlSession
阅读全文

浙公网安备 33010602011771号