传统的sql操作,对事务其实是默认提交的,如果想对事务进行操作,则按如下的方法:
try{
conn.setAutoCommit(false); //设置不会自动提交
stmt = conn.createStatement();
stmt.executeQuery("SELECT * FROM temp_info");
stmt.executeUpdate("UPDATE temp_info SET ip='***.***.***.***'");
conn.commit(); //提交事务
System.out.println("Ok!");
conn.close();
}catch(SQLException e){
try{
conn.rollback(); // 操作不成功,回滚事务
}catch(SQLException r){
System.out.println(r.getMessage());
}
System.out.println(e.getMessage());
}
conn.setAutoCommit(false); //设置不会自动提交
stmt = conn.createStatement();
stmt.executeQuery("SELECT * FROM temp_info");
stmt.executeUpdate("UPDATE temp_info SET ip='***.***.***.***'");
conn.commit(); //提交事务
System.out.println("Ok!");
conn.close();
}catch(SQLException e){
try{
conn.rollback(); // 操作不成功,回滚事务
}catch(SQLException r){
System.out.println(r.getMessage());
}
System.out.println(e.getMessage());
}
而采用了HIbernate之后,都是取得当前的Session.
注:只当数据库连接后,才得到session。然后通过session.getTransaction()对事务进行处理。