整合事务,名词,概念

本文探讨了MySQL的单进程多线程特性,以及如何在Spring和MyBatis集成中通过Hikari连接池建立连接。重点讲解了SqlSession的作用,事务的概念,特别是本地事务和跨database操作的事务管理。
摘要由CSDN通过智能技术生成

mysql实例(instance):

MySQL是单进程多线程,也就是说MySQL实例在系 统上表现就是一个服务进程,即进程,就是我们在自己电脑布了一个mysql实例(服务),然后我们在代码中就可以通过配上mysql实例的地址,就能连上自己电脑上的这mysql实例.

数据库database:

一个instance下可以包含很多个database,如下图: 我的本地的一个instance包含了7个database.

connection  

是将两个服务通过网络建立起连接, 指的是jdbc和mysql实例建立连接,   

spring整合mybatis后,由Hikari连接池来完成concection的操作

SqlSession

sqlsession是一个会话,是jdbc和mysql实例的一次通话,   背景是spring整合mybatis后, 

SqlSession是Mybatis工作的最顶层API会话接口,所有的操作都经由它来实现.

4个单独的dao操作,就是4个事务,就会有4个sqlsession被创建和关闭

将4个dao操作圈在一个事务中,就会只有一个sqlsession被创建和销毁.

就是一个事务只能对应一个sqlsession, 一个sqlsession也只能对应一个事务.

注意:必须dbc和mysql实例先建立连接concection,  sqlsession才能执行后续操作.

本地事务

就是一个事务里的dao操作访问的都是同一个instance,这就是本地事务.

也就是说, 我在一个事务里访问了同一个instance里的A数据库database,又访问量这个instance里的B数据库database,我访问同一个instance不同database了,这时候我因为我是对同一个instance访问的,因此这种操作仍然叫做本地事务.

(这种同一instance跨database的操作,mysql自己是怎么保证它的事务成功的, 后续可以研究下原理)

同一个本地事务

就是在满足本地事务的基础上,  几个dao操作要被圈在一起,圈在一个事务里,如下:

4个dao操作访问的都是同一个instance, 而我又把它们放到同一个方法中用@transactional注解把它们圈在一个事务中,     现在这4个dao就在同一个本地事务中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值