您的位置:首页 > 其它

用于处理JDBC 增删等写操作的事务控制

2017-08-15 21:14 435 查看
import java.sql.Connection;
import java.sql.SQLException;

/**
* 工具类:
*      处理事务,用于回滚数据库操作
* @author
*
*/
public class MangeThreadLocal {
private static ThreadLocal<Connection> tl  = new ThreadLocal<Connection>();

//得到一个连接
public static Connection getConnection(){
Connection conn = tl.get();//从当前线程中取出一个连接
if(conn==null){
conn = JdbcUtil.getConnection();//从池中取出一个
tl.set(conn);//把conn对象放入到当前线程对象中
}
return conn;
}
//开始事务
public static void startTransaction(){
try {
Connection conn = getConnection();
conn.setAutoCommit(false);//从当前线程取出 的对象,并开启事务
} catch (SQLException e) {
e.printStackTrace();
}
}
//提交事务
public static void commit(){
try {
getConnection().commit();
} catch (SQLException e) {
e.printStackTrace();

}
}
//回滚事务
public static void rollback(){
try {
System.out.println("conn="+getConnection());
getConnection().rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭连接
public static void close(){
try {
getConnection().close();//把连接放回池中
tl.remove();//把当前线程中的的conn对象移除
} catch (SQLException e) {
e.printStackTrace();
}
}

}


JDBCUtil查看另一篇JDBC工具类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: