Mybatis源码分析第二节课

一.Mybatis的核心对象及其作用

       前面我们讲了Configuation对象的作用和MappedStatement对象的作用。我们知道MappedStatement是记录我们在xxxMapper.xml种所写的一个个的标签,例如<insert>等。其实我们所写的sql语句也是被一个对象存储了下来。 这个对象就是Boundsql对象。

接下来我们来大概介绍一下mybatis中的操作类对象

        我们知道mybatis是通过sqlSession对象进行操作的,其实底层就是通过SqlSession对象调用mybatis的操作类对象以及配置信息对象进行操作的。

1.Excutor

        Excutor是Mybatis中处理功能的核心,其实在底层调用中,SqlSession也是首先通过了Excutor接口对象的。

通过分析接口可知。

Excutor接口注意涉及了:1. 增删改update  查询 query  2.事务方法的操作  3.缓存相关的操作

Excutor接口有如下的实现类

我们重点了解其3个实现类即可,分别是SimpleExecutor,ReuseExecutor,BatchExecutor

其中BaseExecutor是采用了适配器的设计模式

(1).SimpleExecutor:

 SimpleExecutor是常用Excutor Mybatis推荐 默认的,通过下图我们可以看到。

(2).ReuseExecutor:

目的是复用statement(sql),但是这种用的也很少,因为在实际开发中,我们使用相同的statement情况特别少见(sql语句相同,参数也要相同的情况很少)

(3).BatchExecutor:

目的是处理JDBC中的批操作。

2.statementHandler

       StatementHandler是Mybatis封装了JDBC Statement,真正Mybatis进行数据库访问操作的核心(增删改查)  其通过在底层是由Excutor进行调用的。


statementHandler也是一个接口,也有其实现类,通过实现类我们可以更加了解到 

StatementHandler是mybatis封装了JDBC中的Statement

其实现类SimpleStatementHandler,PreparedStatementHandler,CallableStatementHandler不就是对于JDBC中的Statement,preparedStatement,callableStatement。

3. ParameterHandler

目的:Mybatis参数 ---》 JDBC 相关的参数 
             @Param ---> #{} --- > ?

4. ResultSetHandler

 目的:对JDBC中查询结果集 ResultSet 进行封装 

5.TypeHandler

 Java程序操作 数据库
        Java类型   数据库类型
        String    varchar
        int       number
        int       int 

通过对Mybatis数据存储对象 和 操作类对象 的大概分析,我们可以得到如下这张图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值