2010-10-26 14 views
0

Je suis en train de tester la restauration en Java en utilisant JDBC (avec mysql), mais le code ci-dessous ne fonctionne pas. Le code se comporte comme si j'avais appelé commit() au lieu de rollback(). Quelqu'un peut-il me dire où je vais mal?La restauration jdbc ne fonctionne pas

 Connection conn=null; 
    try 
    { 
    conn = SqlConnectionHandler.getSqlConnection(); 
    conn.setAutoCommit(false); 
    } 
    catch(Exception e) 
    { 
     System.exit(-1); 
    } 
    String updateString1 = "update files set ownerID=ownerID+1 where globalFileID=2"; 
    String updateString2 = "update directories set size=size+1 where globalDirID=8"; 

    try 
    { 
     Statement statement = conn.createStatement(); 
     statement.executeUpdate(updateString1); 
     statement.executeUpdate(updateString2); 
     conn.rollback(); 
     //conn.commit(); 
     statement.close(); 
     SqlConnectionHandler.closeConnection(conn); 
    } 
    catch(Exception ex) 
    { 
     System.err.println("SQLException: " + ex.getMessage()); 
     try 
     { 
     conn.rollback(); 
     } 
     catch(SQLException e) 
     {} 
    } 
} 

Répondre

0

trouvé le problème here et here. On dirait que j'utilisais le moteur de stockage par défaut myISAM, qui ne supporte pas les transactions. Changer le moteur de stockage à InnoDB fonctionne apparemment.