Mybatis深入解析

1,Mybatis的核心组件

(1)sqlsessionFactoryBuilder
这个是构造器用于生产sqlsessionFactory工厂的。它一般通过配置文件生成sqlsessionFactory工厂的。他会受到session.Configuration类对象的引导,采用Builder设计模式然后利用分步的形式去生成会话工厂。当然详细的步骤是在configuration中的实现以及特别实现的。

(2)sqlsessionFactory会话工厂
它主要的作用就是用来生成sqlsession会话。,它采用的设计模式就是工厂模式。

(3)sqlsession :sql会话
主要作用就是给发送sql执行以及返回执行的结果,还有就是它可以获取Mapper接口。但是在最新的Mybatis规范中我们已经使用“sqlsession消失”的方式,具体其实就是使用动态代理的方式实现事务,从而隐藏sqlsession的功能工厂过程。最新的Mybatis规范中采用SQL Mapper组合接口编程技术。它可以提高代码的可读性以及可维护性。

(4)SQL Mapper映射器:
Mybatis新设计存在的组件,他有一个SQL以及一个Java接口构成,需要给出对应的SQL以及映射规则,它代替sqlsession去发送SQL执行并且返回长执行结果。

(5)生成sqlsessionFactory的过程:
首先会有一个配置文件,然后Mybatis就会去读取这个配置文件,通过configuration类对象构建整个Mybatis上下文,其中sqlsessionFactory是一个接口,在Mybatis中他有两个实现类sqlsessionManager和defaultsqlsessionFactory这两个实现类。其中默认的也就是一般情况下使用的就是defaultsqlsessionFactory,而sqlsessionMananger就是用于多线程以及并发环境下的,它也是依靠defaultsqlsessionFactory去实现的。

1,创建配置文件xml。然后采用读取文件流的形式
2,调用new sqlsessionFactoryBuilder.builder(具体文件生成的文件流);这样就可以生成一个sqlsessionFactory工厂。

注意:由于Mybatis的应用都是以一个sqlsessionFactory为中心的,它的唯一作用就是用来生成sqlsession的,因此它在生产开发过程中的我们都是采用单例模式去处理的。
特别推荐使用xml的配置形式去生成sqlsessionFactory工厂,可以有利于后续的修改以及维护。

(6)sqlsession详细说明
在Mybatis之中sqlsession就是一个类似于JDBC的连接器connection的对象。它的功能主要是:获取Mapper接口,发送SQL语句给数据库,控制数据库事务的实现。

其实在sqlsession里面核心的接口是Eexcutor。我们如果查看sqlsession的源码就可以看见12。sqlsession实现事务操作主要就是实现两个方法一个是提交操作Commit,一个就是回滚操作Rollback。这个数据库事务在spring中应用广泛但是目前最新的spring版本已经使用动态代理综合注解的方式将sqlsession的接口隐藏了。关于数据库的连接以及释放,事务提交以及回滚全都交给@Transactional这个注解去实现。

(7)映射器

映射器一般有以下几部分组成:

映射规则,SQL语句(参数类型+返回类型+语句缓存),配置缓存(mapper级别以及sqlsession级别),还可以提供动态SQL的编写。

映射器的作用就是将SQL语句的执行结果映射成为POJO的类格式。

映射器的配置一般就是通过xml文件的格式去实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tronhon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值