包含获取Connection,开启事务,提交事务,回滚事务,释放连接
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JdbcUtil {
private static ComboPooledDataSource ds = null;
private static ThreadLocal<Connection> ld = new ThreadLocal<Connection>();
static{
ds = new ComboPooledDataSource();
}
public static DataSource getDataSource(){
return ds;
}
public static Connection getConnection(){
try{
Connection conn = ld.get();
if(conn == null){
conn = ds.getConnection();
ld.set(conn);
}
return conn;
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public static void startTransaction(){
try{
Connection conn = ld.get();
if(conn == null){
conn = ds.getConnection();
ld.set(conn);
}
conn.setAutoCommit(false);
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public static void commitTransaction(){
try{
Connection conn = ld.get();
if(conn != null){
conn.commit();
}
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public static void rollback(){
try{
Connection conn = ld.get();
if(conn != null){
conn.rollback();
}
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public static void release(){
try{
Connection conn = ld.get();
if(conn!=null){
conn.close();
ld.remove(); //解除当前线程上绑定conn
}
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}