java中jdbc多表操作如何事物回滚
现在有四个java类,通过jdibc分别对四个表进行插入操作,如果有一个表插入失败,其他操作也无效,请问怎么让这四个类中的插入方法绑定在一个事物中,异常后回滚?...
现在有四个java类,通过jdibc分别对四个表进行插入操作,如果有一个表插入失败,其他操作也无效,请问怎么让这四个类中的插入方法绑定在一个事物中,异常后回滚?
展开
展开全部
可以把要执行的四个SQL语句写到同一个List中再调用此方法
你也可以自己写
主要注意
执行sql插入前要取消自动提交 con.setAutoCommit(false);
全部sql语句执行完成后再提交 con.commit();
执行过程抛出异常则回滚 con.rollback();
希望对你有帮助
public boolean exeupdate(List<String> sqls) throws SQLException {
boolean flag = false;
openPoolConnection();//创建连接
try {
//
con.setAutoCommit(false);//取消自动提交
for(int i=0;i<sqls.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;
}
你也可以自己写
主要注意
执行sql插入前要取消自动提交 con.setAutoCommit(false);
全部sql语句执行完成后再提交 con.commit();
执行过程抛出异常则回滚 con.rollback();
希望对你有帮助
public boolean exeupdate(List<String> sqls) throws SQLException {
boolean flag = false;
openPoolConnection();//创建连接
try {
//
con.setAutoCommit(false);//取消自动提交
for(int i=0;i<sqls.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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |