论坛首页 入门技术论坛

JDBC中分段进行事务提交为什么做不到?

浏览 3238 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-07-27  
DAO
首先说明:
不是使用Spring 或 Hibernate等框架进行DB操作,而是使用纯JDBC的时候!!!!!!!

问题:
使用纯JDBC代码操作数据库,能不能做到分段提交事务?例如有4步数据库的插入操作

setAutoCommit(false);
insert table1 ......
insert table2 ......
insert table3 ......
insert table4 ......
commit();

我希望做到这些所有操作使用同一个事务,
但对table2的插入操作不影响其它操作,就是说,在table2插入完成后,需要执行一次commit,
而这个commit操作仅仅是把插入table2的数据提交到数据库里,而上一步table1的操作不提交。

我用savepoint试了半天,可是一直都没成功,还有其它办法吗?


   发表时间:2007-07-27  
insert table2 ......
commit();
insert table1 ......
insert table3 ......
insert table4 ......
commit();
这样不行吗?
0 请登录后投票
   发表时间:2007-07-27  
不行!
insert table2 ...... 必须在后面!
0 请登录后投票
   发表时间:2007-07-27  
这是不可能的   因为你insert2 既然必须在后面  也就是说他实际上是绑定insert1的  如果你只提交insert2  而insert1回滚  也就是说2实际上是错误数据    数据库也不会允许你这么做的
0 请登录后投票
   发表时间:2007-08-05  
其实这是可能,比如:
setAutoCommit(false);
insert table1 ......
建立一个新的DB
insert table2 ......
新DB连接commit();
insert table3 ......
insert table4 ......
commit();

但是我想知道的,不建立新连接能做到吗?
0 请登录后投票
   发表时间:2007-08-05  
建立新连接也就是两次操作实际上是没有关系的  既然没有关系  为什么不能先insert2呢
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics