本文目录一览:
java中jdbc多表操作如何事物回滚
可以把要执行的四个SQL语句写到同一个List中再调用此方法
你也可以自己写
主要注意
执行sql插入前要取消自动提交
con.setAutoCommit(false);
全部sql语句执行完成后再提交
con.commit();
执行过程抛出异常则回滚
con.rollback();
希望对你有帮助
public
boolean
exeupdate(ListString
sqls)
throws
SQLException
{
boolean
flag
=
false;
openPoolConnection();//创建连接
try
{
//
con.setAutoCommit(false);//取消自动提交
for(int
i=0;isqls.size();i++)
{
pstmt
=
con.prepareStatement(sqls.get(i));
int
rows
=
pstmt.executeUpdate();
}
flag
=
true;
con.commit();//提交
}
catch
(Exception
e)
{
con.rollback();//回滚
e.printStackTrace();
}
finally
{
this.closeAll();//关闭连接
数据集
语句对象
}
return
flag;
}
在Java中事物的提交和回滚是什么意思?
向数据库提交数据或修改数据,如果你觉得没有问题,就可以提交,如果其中有一个环节出错了,就可以设置回滚,可以根据判断进行回滚,不是非要出异常了才回滚,如何回滚如何提交要看你的业务逻辑。
比如:
你去银行转账,转账我们有两步吧,从你账户中取出钱再往他账户中加钱。那这两步银行是必须要确保正确无误的进行的。要被看做成一个事务。其中任何一步出错就算是转账失败,但可能你这时是已经从你账户中扣了钱了,又没往他账户里加钱,怎么办?银行会事务回滚,不保存你刚才的操作,即恢复到你没转账之前的状态。
请教:如何在java程序中实现数据操作的“回滚”
--事务处理:
begin tran --开始处理数据时,开启事务
--下面是具体的处理语句
insert into 表 values(1)
if @@error0 --如果处理语句出错,回滚事务
begin
rollback tran
goto lbexit
end
update 表 set 字段=1
if @@error0 --如果处理语句出错,回滚事务
begin
rollback tran
goto lbexit
end
commit tran --所有执行成功,提交事务
lbexit:
JAVA的话,可以在连接对象上启用事务