JDBC事务

Nonoas 2020-08-08 10:59:32
大佬们,JDBC的一次Connection是不是代表一次事务,能不能将多次连接下的SQL语句指定为一次事务,即只要有一次执行失败,其余全部回滚。
...全文
317 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hashcon 2020-08-08
  • 打赏
  • 举报
回复
会话开启事务,一个会话存在于一个连接。你说的这个跨连接的事务,相当于是分布式事务,需要应用的事务管理器支持分布式事务,并且底层数据库也支持。
lkj2016 2020-08-08
  • 打赏
  • 举报
回复
Connection conn = DriverManager.getConnection(...);
try{
  con.setAutoCommit(false);
  Statement stmt = con.createStatement();
  //1 or more queries or updates
  con.commit();
}catch(Exception e){
  con.rollback();
}finally{
con.close();
}
securitit 2020-08-08
  • 打赏
  • 举报
回复
这种东西看你怎么实现了,比如: 1.如果事务完全是JDBC基础代码实现的,那你完全条件化控制所有事务的提交或回滚; 2.如果是使用框架事务控制、容器事务控制这些就要看你所选用的技术方案的实现,一般情况下,都会提供多个操作的连接共享实现; 3.另外就是使用分布式事务控制(JTA),选用合适的JTA驱动,分布式事务的二阶段或三阶段提交协议会严重拖慢程序性能,使用需慎重。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧