package cn.liurui.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.sql.SQLException;
/**
* @author lijun
* @date 2019/8/12 14:41
* 事物管理器
*/
@Component
public class TransactionManager {
@Autowired
private ConnectionUtil connectionUtil;
private void setConnectionUtil(ConnectionUtil connectionUtil){
this.connectionUtil=connectionUtil;
}
// 开启事物
public void beginTransation(){
try {
// 从线程获取链接 实现开启事物
connectionUtil.getThreadConnection().setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}
// 提交
public void commit(){
try {
connectionUtil.getThreadConnection().commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 回滚
public void rollBack(){
try {
connectionUtil.getThreadConnection().rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 释放资源
public void release(){
try {
connectionUtil.getThreadConnection().setAutoCommit(true);
//关闭连接
connectionUtil.getThreadConnection().close();
connectionUtil.remove();
} catch (SQLException e) {
e.printStackTrace();
}
}
}