JAVA JDBC事务提交的疑问。

[复制链接]
查看11 | 回复1 | 2010-3-22 11:36:28 | 显示全部楼层 |阅读模式
>>启动事务 conn.setAutoCommit();这个不是启动事务,而是设置事务是否自动提交,默认是自动提交,如果要手动控的话,写成conn.setAutoCommit(false);if(rs.next){
>>>...执行更新
conn.commit(); }这个也不对,RS不可能执更新操作。只能是查询。如果你进行了锁表操作,那么如果没有commit()或rollbak()方法,是不会进行解锁操作的。下面给你些代码段以做参考。public class SQLCondition{ public ResultSet execuQuery(Connection conn) throws SQLException{检索操作.......} public int execuUpdate(Connection conn) throws SQLException{更新操作.......}}public class DBAccess(){public void execute(){
SQLCondition condition = .....;
Connection conn = .....;
try{
conn.setAutoCommit(false); //设成非自动提交
condition.execuQuery(conn);
condition.execuUpdate(conn); //如果操作成功会走到这一步,进行提交,可以解锁
conn.commit();
}catch(SQLException){ //出现任何的SQL异常都可以捕捉到,进行事务回滚,也可以解锁。
conn.rollbak();
}}}>>自动默认是回滚事务? 默认的话,是执行一条就进行提交,如果错了会回滚。
回复

使用道具 举报

千问 | 2010-3-22 11:36:28 | 显示全部楼层
请准确清晰并详细描述你的问题,因为引起该问题的原因比较多?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行