
mybatis
mybatis 源码
Bailoading
这个作者很懒,什么都没留下…
展开
-
Mybatis学习(九) --- ResultSetHandler
在Statement接口在执行完之后,会将结果集交给ResultSetHandler进行映射处理。ResultSetHandler是一个接口主要有三个方法://处理结果集,生成对应的对象集合<E> List<E> handleResultSets(Statement stmt) throws SQLException;<E> Cursor&l...原创 2020-04-18 16:18:12 · 380 阅读 · 0 评论 -
Mybatis学习(八)--- StatementHandler
StatementHandler是mybatis的核心接口,是Executor接口实现的基础。Executor接口在SqlSession的实现基础,在缓存那一节我们有介绍,所以不在介绍了。//获取StatementStatement prepare(Connection connection, Integer transactionTimeout) throws SQLEx...原创 2020-04-18 09:49:31 · 242 阅读 · 0 评论 -
Mybatis学习(七) --- SqlSession
SqlSession对应一次数据库会话,每次访问数据库都需要创建SqlSession,一旦关闭sqlSession就需要在重写创建。在SqlSession中定义了常用的数据库的操作以及事务的操作。sql语句在执行的时候流程如下图: 后续将介绍其他几个类。DefaultSqlSession 该类实现了SqlSession接口,也是单独使用Mybatis进行开发时最常...原创 2020-04-12 23:31:48 · 325 阅读 · 0 评论 -
Mybatis学习(六)--- Xml的解析
在实际mybatis的应用中,我们写好mapper接口之后,需要提供对应的xml文件,这次我们主要分析是如何解析xml文件的。XmlMappedBuilder 解析的主要函数是://是否加载过该映射文件public void parse() { if (!configuration.isResourceLoaded(resource)) { //处理map...原创 2020-04-11 19:55:38 · 469 阅读 · 0 评论 -
Mybatis学习(五) --- 缓存
Mybatis的缓存分为一级缓存和二级缓存一级缓存:用于缓存用户在一次会话的查询结果,用户在一次会话中只能使用一个sqlSession 二级缓存:全局缓存,mapper级别的缓存,针对一个表的缓存,不同的sqlSession是可以共享的一级缓存 在应用运行的时候,在一次数据库会话中,执行多次查询条件完全相同的SQL会优先命中一级缓存,避免直接在数据库中查找。其生命周期与s...原创 2020-04-11 11:00:35 · 263 阅读 · 0 评论 -
Mybatis学习(三)--- ParamNameResolver
是一个工具类,主要用来解析接口方法的参数的,也就是方法参数中参数的位置,名字之间的索引关系,比如我们在写mapper接口对应的sql文件的时候,使用#{0},#{arg0},#{param0},或者参数的真正名字进行参数绑定的。public ParamNameResolver(Configuration config, Method method) { //获取参数列表中每个参数的...原创 2020-04-04 10:47:39 · 776 阅读 · 1 评论 -
Mybatis学习(四) --- binding模块
在使用mybatis的时候需要使用对应的接口,不像需要写具体的实现,就可以实现数据库的操作,Mybatis可以根据接口和对应的方法找到xml文件中sql语句,进行绑定,以及参数的填充。接下来我们看下binding模块的代码。下面是核心组件的关系MapperProxy:是Mapper接口的代理对象,让我们在使用mybatis的时候不需要实现接口 MapperProxyFactory:M...原创 2020-04-04 10:58:01 · 216 阅读 · 0 评论 -
Mybatis学习(二)--- 数据源DataSource
Mybatis提供了两个数据源的实现:PooledDataSource和UnPolledDataSource,然后通过不同的工厂方法创建不同的DataSource.DataSourceFactory工厂 DataSourceFactory是工厂类接口的,UnpooledDataSourceFactory和PooledDataSourceFactory扮演着具体的工厂类的。该接...原创 2020-03-28 16:59:31 · 540 阅读 · 0 评论 -
Mybatis学习(一)--- 类型转换TypeHandler
Jdbc的类型与java的数据类型并不完全对应,所以在PreparedStatement为sql进行绑定参数的时候,需要从java类型转换为jdbc类型,而从结果集中获取数据的时候,需要将jdbc类型转换为java类型,mybatis使用类处理器解决上述问题。 ...原创 2020-03-24 22:51:35 · 448 阅读 · 0 评论