随笔分类 -  Mybatis源码解析

摘要:不知道一些同学有没有这种疑问,为什么Mybtis中要配置dataSource,Spring的事务中也要配置dataSource?那么Mybatis和Spring事务中用的Connection是同一个吗?我们常用配置如下 <!--会话工厂 --> <bean id="sqlSessionFactory 阅读全文
posted @ 2019-11-13 11:50 chen_hao 阅读(5484) 评论(0) 推荐(9) 编辑
摘要:上一篇文章我们讲了SqlSessionFactoryBean,通过这个FactoryBean创建SqlSessionFactory并注册进Spring容器,这篇文章我们就讲剩下的部分,通过MapperScannerConfigurer将Mapper接口生成代理注入到Spring 扫描Mapper接口 阅读全文
posted @ 2019-11-12 11:12 chen_hao 阅读(3646) 评论(2) 推荐(6) 编辑
摘要:在前面几篇文章中我们主要分析了Mybatis的单独使用,在实际在常规项目开发中,大部分都会使用mybatis与Spring结合起来使用,毕竟现在不用Spring开发的项目实在太少了。本篇文章便来介绍下Mybatis如何与Spring结合起来使用,并介绍下其源码是如何实现的。 Spring-Mybat 阅读全文
posted @ 2019-11-11 11:27 chen_hao 阅读(2810) 评论(0) 推荐(2) 编辑
摘要:像Mybatis、Hibernate这样的ORM框架,封装了JDBC的大部分操作,极大的简化了我们对数据库的操作。 在实际项目中,我们发现在一个事务中查询同样的语句两次的时候,第二次没有进行数据库查询,直接返回了结果,实际这种情况我们就可以称为缓存。 Mybatis的缓存级别 一级缓存 MyBati 阅读全文
posted @ 2019-11-09 12:00 chen_hao 阅读(1470) 评论(1) 推荐(4) 编辑
摘要:上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象。这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中。这可大大降低开发的工作量,提高工作效率。 映射结果入口 我们来看看上次看源码的位置 public <E> 阅读全文
posted @ 2019-11-08 11:27 chen_hao 阅读(3948) 评论(4) 推荐(7) 编辑
摘要:我们上篇文章讲到了查询方法里面的doQuery方法,这里面就是调用JDBC的API了,其中的逻辑比较复杂,我们这边文章来讲,先看看我们上篇文章分析的地方 SimpleExecutor 1 public <E> List<E> doQuery(MappedStatement ms, Object pa 阅读全文
posted @ 2019-11-06 11:37 chen_hao 阅读(1793) 评论(0) 推荐(6) 编辑
摘要:上一篇我们分析了Mapper接口代理类的生成,本篇接着分析是如何调用到XML中的SQL 我们回顾一下MapperMethod 的execute方法 public Object execute(SqlSession sqlSession, Object[] args) { Object result; 阅读全文
posted @ 2019-11-04 11:13 chen_hao 阅读(2076) 评论(0) 推荐(2) 编辑
摘要:刚开始使用Mybaits的同学有没有这样的疑惑,为什么我们没有编写Mapper的实现类,却能调用Mapper的方法呢?本篇文章我带大家一起来解决这个疑问 上一篇文章我们获取到了DefaultSqlSession,接着我们来看第一篇文章测试用例后面的代码 EmployeeMapper employee 阅读全文
posted @ 2019-11-01 10:55 chen_hao 阅读(3128) 评论(1) 推荐(5) 编辑
摘要:SqlSession是mybatis的核心接口之一,是myabtis接口层的主要组成部分,对外提供了mybatis常用的api。myabtis提供了两个SqlSesion接口的实现,常用的实现类是DefaultSqlSession。它相当于一个数据库连接对象,在一个SqlSession中可以执行多条 阅读全文
posted @ 2019-10-30 11:13 chen_hao 阅读(2515) 评论(1) 推荐(3) 编辑
摘要:上一篇我们讲解到mapperElement方法用来解析mapper,我们这篇文章具体来看看mapper.xml的解析过程 mappers配置方式 mappers 标签下有许多 mapper 标签,每一个 mapper 标签中配置的都是一个独立的映射配置文件的路径,配置方式有以下几种。 接口信息进行配 阅读全文
posted @ 2019-10-29 11:40 chen_hao 阅读(3601) 评论(0) 推荐(5) 编辑
摘要:我们使用mybatis操作数据库都是通过SqlSession的API调用,而创建SqlSession是通过SqlSessionFactory。下面我们就看看SqlSessionFactory的创建过程。 配置文件解析入口 我们看看第一篇文章中的测试方法 首先,我们使用 MyBatis 提供的工具类 阅读全文
posted @ 2019-10-28 11:11 chen_hao 阅读(3508) 评论(0) 推荐(6) 编辑
摘要:源码分析之前先搭一个mybatis的demo,这个在看源码的时候能起到了很大的作用,因为在看源码的时候,会恍然大悟,为什么要这么配置,为什么要这么写。(老鸟可以跳过这篇) 开发环境的准备 创建maven项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> 阅读全文
posted @ 2019-10-28 11:03 chen_hao 阅读(2403) 评论(2) 推荐(1) 编辑