三层架构中的业务逻辑层是处理业务逻辑的部分,很多时候需要调用多步Dao层的增删改操作,这就涉及到使用事务保证数据的一致性。
Connection接口自带的事务机制需要保证多步SQL操作使用相同的连接对象,这样才能保证事务的执行环境。
事务的边界一般是在业务逻辑层的(即事务的开启、提交、回滚都是在业务逻辑层),因为业务逻辑层会涉及多步操作,所以Connection对象要在业务逻辑层创建,然后将Connection对象传给Dao层的方法即可。
为了确保事务的正确性,异常要统一在业务逻辑层处理
下面展示使用Connection启动事务的具体代码
/**
* 开始事务
* @param cnn
*/
public static void beginTransaction(Connection cnn){
if(cnn!=null){
try {
if(cnn.getAutoCommit()){
cnn.setAutoCommit(false);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 提交事务
* @param cnn
*/