整合事务,名词,概念

发布时间:2024年01月07日

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就在同一个本地事务中.

文章来源:https://blog.csdn.net/weixin_70280523/article/details/135187382
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。