mybatis
文章平均质量分 65
ikownyou
这个作者很懒,什么都没留下…
展开
-
(六)Mybatis Sql如何解析执行(2)--MyBatis源码解析
上篇博客讲解了如何解析sql,不过SqlNode.apply()后,Sql还是个半成品。只处理了"${}"这种占位符,"#{}"这种占位符还没有处理,而且Sql执行时的参数也没有生成。我们再回顾下DynamicSqlSource.getBoundSql()方法public BoundSql getBoundSql(Object parameterObject) { Dynamic...原创 2018-08-03 17:28:01 · 246 阅读 · 0 评论 -
(七)Mybatis Sql如何解析执行StatementHandler(3)--MyBatis源码解析
这篇博客我们来学习下StatementHandler是如何解析执行sql的,带你一起看下整个执行过程,一起学习。SimpleExecutor执行sql过程当BoundSql加载完成之后,下一步就是执行select/update/insert/delete语句了。在SimpleExecutor中执行语句最终会由doQuery和doUpdate方法完成。public int doUpda...原创 2018-08-03 17:50:04 · 1200 阅读 · 0 评论 -
(一)MyBatis初始化过程解析----MyBatis源码解析
1. 准备工作为了看清楚MyBatis的整个初始化过程,先创建一个简单的Java项目,目录结构如下图所示:1.1 Product 产品实体类public class Product { private long id; private String productName; private String productContent; privat...转载 2018-07-31 15:32:49 · 220 阅读 · 0 评论 -
(二)MyBatis调用动态代理解析----MyBatis源码解析
如果我们要使用MyBatis进行数据库操作的话,大致要做两件事情: 1. 定义DAO接口 在DAO接口中定义需要进行的数据库操作。 2. 创建映射文件 当有了DAO接口后,还需要为该接口创建映射文件。映射文件中定义了一系列SQL语句,这些SQL语句和DAO接口一一对应。MyBatis在初始化的时候会将映射文件与DAO接口一一对应,并根据映射文件的内容为每个函数创建相应的数据库操作能力。...转载 2018-07-31 16:35:14 · 211 阅读 · 0 评论 -
(三)MyBatisSqlSession创建及简要解析----MyBatis源码解析
上一篇我们介绍了mybatis动态代理,文章末尾也写了要继续分析excutor,但是第三讲再讲解excutor执行分析之前,我必须要带领大家回顾下SqlSession的创建过程,这样有助于接下来excutor的理解。 SqlSession的使用简单 当我们得到sqlsessionFactory后便可以获取sqlsession对象了,sqlsession对象的生命周期都有以下...原创 2018-08-02 15:12:52 · 487 阅读 · 0 评论 -
(四)Mybatis Executor接口实现方式--MyBatis源码解析
经过上一篇文章的我们应该对sqlsession的创建以及方法使用有所了解select类方法 update/insert/delete方法 commit() rollback() close()接下来我们就来讲下sql的执行器是如何执行sql的,首先我们来普及下Executor,让大家对执行器稍微有点印象,让接下来的讲解更容易理解,不那么抽象。先让我们看两张图,刷个脸熟Base...原创 2018-08-02 18:17:15 · 1388 阅读 · 1 评论 -
(五)Mybatis Sql如何解析执行(1)--MyBatis源码解析
通过前面一些篇幅,我们整理了sqlSession和executor关系之后,接下来就要看看具体一条sql是怎么被解析执行了,先看下query代码。对应的mapper配置文件我也补上,后续会将代码打包发布到github上<mapper namespace="com.mybatis.demo.User"> <resultMap type="com.mybatis...原创 2018-08-03 15:39:43 · 1089 阅读 · 0 评论