我现在的情况是
向一张表A插入一条记录的同时要向表B循环插入若干条记录,这个事务要怎么写,正常事务的写法是同时分别向两表插入两条记录不成功就回滚。
我的相当于
sql="insert into a values(……)"
excuteUpdate(sql)while(条件)
{
sql="insert into b values(……)"
excuteUpdate(sql)
}
如果表A插入不成功,那么表B的所有记录回滚
向一张表A插入一条记录的同时要向表B循环插入若干条记录,这个事务要怎么写,正常事务的写法是同时分别向两表插入两条记录不成功就回滚。
我的相当于
sql="insert into a values(……)"
excuteUpdate(sql)while(条件)
{
sql="insert into b values(……)"
excuteUpdate(sql)
}
如果表A插入不成功,那么表B的所有记录回滚
connection.setAutoCommit(false);
while(条件)
{
sql="insert into b values(……)"
excuteUpdate(sql)
}
//循环后提交事务
connection.commit();//如果有异常要回滚事务
connection.rollback();
代码类似于
try{
insert a
foreach insert b
……
connection.commit();
}
catch{connection.rollback();
}