浏览 3239 次
锁定老帖子 主题:JDBC中分段进行事务提交为什么做不到?
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-27
不是使用Spring 或 Hibernate等框架进行DB操作,而是使用纯JDBC的时候!!!!!!! 问题: 使用纯JDBC代码操作数据库,能不能做到分段提交事务?例如有4步数据库的插入操作 setAutoCommit(false); insert table1 ...... insert table2 ...... insert table3 ...... insert table4 ...... commit(); 我希望做到这些所有操作使用同一个事务, 但对table2的插入操作不影响其它操作,就是说,在table2插入完成后,需要执行一次commit, 而这个commit操作仅仅是把插入table2的数据提交到数据库里,而上一步table1的操作不提交。 我用savepoint试了半天,可是一直都没成功,还有其它办法吗? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-27
insert table2 ......
commit(); insert table1 ...... insert table3 ...... insert table4 ...... commit(); 这样不行吗? |
|
返回顶楼 | |
发表时间:2007-07-27
不行!
insert table2 ...... 必须在后面! |
|
返回顶楼 | |
发表时间:2007-07-27
这是不可能的 因为你insert2 既然必须在后面 也就是说他实际上是绑定insert1的 如果你只提交insert2 而insert1回滚 也就是说2实际上是错误数据 数据库也不会允许你这么做的
|
|
返回顶楼 | |
发表时间:2007-08-05
其实这是可能,比如:
setAutoCommit(false); insert table1 ...... 建立一个新的DB insert table2 ...... 新DB连接commit(); insert table3 ...... insert table4 ...... commit(); 但是我想知道的,不建立新连接能做到吗? |
|
返回顶楼 | |
发表时间:2007-08-05
建立新连接也就是两次操作实际上是没有关系的 既然没有关系 为什么不能先insert2呢
|
|
返回顶楼 | |