JDBCTools 工具类(c3p0连接池获取连接,关闭连接,基本事务)

/**
 * Driver 是一个接口:数据库厂商必须提供实现的接口,能从其中获取数据库连接
 * DriverManager 是驱动的管理类
 * 1)、可以通过重载的 getConnection() 方法获取数据库连接(方便)
 * 2)、可以同时管理多个驱动程序:若注册了多个数据库连接,则调用 getConnection()
 * 方法时传入的参数不同,即返回不同的数据库连接。
 */
public class JDBCTools {
    private  JDBCTools() {
    }
    /**
     * 关闭数据库连接
     */
    public static void release(ResultSet resultset, Statement statement,Connection conn){
        try {
            if (resultset!=null)
                resultset.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (statement!=null)
                statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //数据库连接池的 Connection 对象进行 close 时
        //并不是真的进行关闭, 而是把该数据库连接会归还到数据库连接池中
        try {
            if (conn!=null)
                conn.close();                
        } catch (SQLException e) {
            e.printStackTrace();
        }    
    }
    
    //在整个项目里面一般只需要一个连接池
    private static DataSource dataSource = null;
    //数据库连接池应只被初始化一次。
    static{
        dataSource = new ComboPooledDataSource("helloc3p0");
    }
    /**
     * 创建数据库连接
     */
    public static Connection getConnection() throws SQLException{
        return dataSource.getConnection();
    }
//    public static Connection getConnection() throws IOException, ClassNotFoundException, SQLException{
//        //1、创建四个用来连接数据库的字符串
//        String driverClass=null;
//        String jdbcURL=null;
//        String user=null;
//        String password=null;
//        
//        Properties    pro=new Properties();
//        InputStream in=
//                JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.Properties");
//        pro.load(in);
//        driverClass=pro.getProperty("driver");
//        jdbcURL=pro.getProperty("jdbcUrl");
//        user=pro.getProperty("user");
//        password=pro.getProperty("password");
//        //2、加载数据库驱动
//        Class.forName(driverClass);
//        //3、连接数据库
//        Connection connection=DriverManager.getConnection(jdbcURL, user, password);
//        return connection;
//    }
    /**
     * 开始事务
     */
    public static void beginTx(Connection conn){
        if (conn != null) {
            try {
                conn.setAutoCommit(false);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 回滚事务
     */
    public static void rollback(Connection conn){
        if (conn != null) {
            try {
                conn.rollback();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 提交事务
     */
    public static void commit(Connection conn){
        if(conn != null){
            try {
                conn.commit();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值