关于jdbc中数据库事务的提交和回滚

关于jdbc中数据库事务的提交和回滚,第1张

首先,连接数据库异常,可能是数据库JDBC连接问题,也可能是驱动问题。

第二,没找到数据库

第三,数据库字段拼写错误。

第四,SQL语句错误

第五,还没发现。呵呵。这个是我最近2天遇到的问题。。。都在这里啦。。

已经提交的事务即在进行update或insert *** 作后,进行了commit的 *** 作。

1、如,有以下两个语句:

update test set id=3 where id=2;

commit;insert into test values (4,'王五');

commit;

2、如果进行了update及insert *** 作后不进行提交的话,那么修改或插入的数据只在当前session有效,并不会写入数据库,只有当commit(提交)后,才会生效。

实现方案

使用TransactionSynchronizationManager在事务提交之后 *** 作

public void insert(TechBook techBook){

bookMapperinsert(techBook);

// send after tx commit but is async

TransactionSynchronizationManagerregisterSynchronization(new TransactionSynchronizationAdapter()

{

BEGIN

TRAN

为开始事务

COMMIT

TRAN

为提交事务

ROLLBACK

TRAN

为回滚事务

BeginTrans

启动新的事务,之后任何改变不会立即提交

CommitTrans

保存所有更改并结束当前事务。它也可以启动新事务。

RollbackTrans

取消当前事务中所做的任何更改并结束事务。它也可以启动新事务。

以上就是关于关于jdbc中数据库事务的提交和回滚全部的内容,包括:关于jdbc中数据库事务的提交和回滚、oracle数据库中什么是已经提交的事务、如何在数据库事务提交成功后进行异步 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9340458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存