数据库系统的客户程序只要向数据库系统声明了一个事务,数据库系统就会自动保证事务的ACID特性。在JDBC API中,java.sql.Connection类代表一个数据库连接。它提供了以下方法控制事务:
1. setAutoCommit(Boolean autoCommit):设置是否自动提交事务。
2. commit():提交事务。
3. rollback():撤销事务。
demo:
Connection = null;
PreparedStatement pstmt = null;
try{
con = DriverManager.getConnection(dbUrl, username, password);
//
设置手工提交事务模式
con.setAutoCommit(false);
pstmt = ……;
pstmt.executeUpdate();
//
提交事务
con.commit();
}catch(Exception e){
//
事务回滚
con.rollback();
…..
} finally{
…….
}
Hibernate
对
JDBC
进行了轻量级的对象封装,
Hibernate
本身在设计时并不具备事务处理功能,平时所用的
Hibernate
的事务,只是将底层的
JDBCTransaction
或者
JTATransaction
进行了一下封装,在外面套上
Transaction
和
Session
的外壳,其实底层都是通过委托底层的
JDBC
或
JTA
来实现事务的调度功能。