public String delete(String s, String s1, String s2)
{
 String s7 =(new StringBuilder()).append("BEGIN TRANSACTION").toString();
         int m =executeSql(s7);
 
 
 String s3 = (new StringBuilder()).append("DELETE FROM DSSB_JF06 where MERCH_NO='").append(s).append("'").append(" and BOC_DATE='").append(s1).append("'").append(" and BANKNO='").append(s2).append("'").toString();
 int i = executeSql(s3);
    String s4 = (new StringBuilder()).append("DELETE FROM BEPS_JF06 where MERCH_NO='").append(s).append("'").append(" and BOC_DATE='").append(s1).append("'").append(" and BANKNO='").append(s2).append("'").toString();
 int j = executeSql(s4);
 System.out.println("j======"+j);  String s5 = (new StringBuilder()).append("DELETE FROM DSSB_FILECTL where MERCH_NO='").append(s).append("'").append(" and BOC_DATE='").append(s1).append("'").append(" and BANKNO='").append(s2).append("'").toString();
 int k = executeSql(s5);  if(i==0&&j==0&&k==0)
{
             return "success";
}
 else 
   {
               String s6=(new StringBuilder()).append("ROLLBACK").toString();
     int l=executeSql(s6);
                     return "failtrue";
         
     }
   }代码大概是这样,因为我想要三个表一起删,如果一个表的删除失败就rollback ,可是这个回滚执行不了。不知道怎么办了。请高手指教!

解决方案 »

  1.   

    Connection conn = .....
    try
    {
    conn.setAutoCommit(false);// 更改JDBC事务的默认提交方式delete1();
    delete2();
    delete3();conn.commit();//提交JDBC事务
    conn.setAutoCommit(true);// 恢复JDBC事务的默认提交方式
    }
    catch(Exception ex)
    {
    conn.rollBack();//回滚JDBC事务
    }
    finally
    {
    conn.close();
    }
      

  2.   

    多谢楼上的,
    我是JSP菜鸟,才刚刚开始学不久
    问题是,现在我是在别人的平台上面在做。不需要建立连接了。
    可以直接操作数据库(看我写的代码)
    可是那个ROLLBACK没有效果,就是这个地方不太懂。谢谢。