C3P0数据源的使用

将c3p0封装为一个JDBCUtils类。管理数据库的连接和使用。

public class JDBCTools {
    
    //处理数据库事务的
    //提交事务
    public static void commit(Connection connection){
        if(connection != null){
            try {
                connection.commit();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    //回滚事务
    public static void rollback(Connection connection){
        if(connection != null){
            try {
                connection.rollback();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    //开始事务
    public static void beginTx(Connection connection){
        if(connection != null){
            try {
                connection.setAutoCommit(false);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    private static DataSource dataSource = null;

    //数据库连接池应只被初始化一次. 
    static{
        dataSource = new ComboPooledDataSource("c3p0");
    }
    
    public static Connection getConnection() throws Exception {
        return dataSource.getConnection();
    }

    public static void releaseDB(ResultSet resultSet, Statement statement,
            Connection connection) {

        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (connection != null) {
            try {
                //数据库连接池的 Connection 对象进行 close 时
                //并不是真的进行关闭, 而是把该数据库连接会归还到数据库连接池中. 
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

c3p0-config.xml




    
        
        
        root
        1230
        com.mysql.jdbc.Driver
        jdbc:mysql:///atguigu
        
        
        5
        
        5
        
        5
        
        10

        
        20
        
        5
    
    
        

你可能感兴趣的:(C3P0数据源的使用)