mysql实现事务的sql代码和流程

事务来自于Mysql,与框架无关(无论是jadb还是mybatis还是spring,这些框架只是封装了mysql的事务代码,让程序员能更方便的实现事务操作)

sql代码:

mysql提供了三个关键字来完成事务的提交

    1. begin:事务开始,后续的sql只会在内存中被执行(会返回执行结果,比如查询结果,但是数据不会生效),等待commit或rollback来确定最终执行结果

    2. commit:将begin后面提交的sql执行完毕,并将结果持久化到硬盘上,使数据生效

    3. rollback:将begin后续的sql语句回滚,也就是内存模拟允许的数据不再生效,重新读取硬盘上的数据

每一次事务运行完毕后(commit/rollbac),开启新的事务都要重新声明begin,以开启新的事务

示例:通过sql命令实现事务

BEGIN; #事务开始

#SQL语句 修改数据
UPDATE tb_salary s SET salary = 8888 WHERE salaryId=8

COMMIT; #事务提交
ROLLBACK; #事务回滚

流程:

如图,从连接池拿连接对象,并实现事务

连接对象中的所有sql语句存在内存中,并没有实际去修改mysql,只有发送了commit指令后,才会一起修改mysql,这就保证了sql语句的完整性和一致性

image

posted @ 2021-10-10 23:02  夏·舍  阅读(511)  评论(0编辑  收藏  举报