try {
conn.setAutoCommit(false);
//开始对数据库操作之类的
//包括,创建删除等等操作
conn.commit();
conn.setAutoCommit(true);
} catch(SQLException sqle) {
  try{conn.rollback();}catch(SQLException sqle2) {
    System.err.println("Error In Rollback");
    sqle2.printStackTrace();
  }
  try{conn.setAutoCommit(true);}catch(SQLException sqle2) {
    System.err.println("Error In SetAutoCommit");
    sqle2.printStackTrace();
  }
  throw new YourException(sqle.getMessage());
}

解决方案 »

  1.   

    请问conn.setAutoCommit(true)里的参数是false还是true呢?我刚才看到其它的贴子,有些说是用false的,还说什么用true的话不管理成不成功都要回滚,是吗?
    再有一个问题是,我们的数据库操作都给封装到另外的一个类里面了,而我只是调用里面的方法来操作数据库的,请问我该怎样才可以使用事务呢?
      

  2.   

    1、用false:
    conn.setAutoCommit(true)允许自动提交,对数据库的操作会直接提交到数据库,事务不能
    自己控制,用false则相反;
    2、将数据库的操作放在conn.setAutoCommit(false) 和 conn.commit()之间就可以了,
    上面那个帖子写的比较清楚。
      

  3.   

    默认的是true ,java自己管理事务 ...
    设成false,就可以自己手动管理事务了..事务处理是connection的事.
    你操作数据库,总得要先得到联结...代码上面给了,具体怎么实现那只能结合你自己的代码了.别人帮不了你.
      

  4.   

    楼主,根据你的情况,你是用不了事务的,除非你把那个连接数据库的class文件修改了,就可以,或者你自己写一个rollback方法也可以,要不我帮你写
    [email protected]