美文网首页
C3P0数据源的使用

C3P0数据源的使用

作者: 怪蜀黍Zzzzlw | 来源:发表于2016-07-31 18:50 被阅读0次

    将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

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
    
        <named-config name="helloc3p0">
            
            <!-- 指定连接数据源的基本属性 -->
            <property name="user">root</property>
            <property name="password">1230</property>
            <property name="driverClass">com.mysql.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql:///atguigu</property>
            
            <!-- 若数据库中连接数不足时, 一次向数据库服务器申请多少个连接 -->
            <property name="acquireIncrement">5</property>
            <!-- 初始化数据库连接池时连接的数量 -->
            <property name="initialPoolSize">5</property>
            <!-- 数据库连接池中的最小的数据库连接数 -->
            <property name="minPoolSize">5</property>
            <!-- 数据库连接池中的最大的数据库连接数 -->
            <property name="maxPoolSize">10</property>
    
            <!-- C3P0 数据库连接池可以维护的 Statement 的个数 -->
            <property name="maxStatements">20</property>
            <!-- 每个连接同时可以使用的 Statement 对象的个数 -->
            <property name="maxStatementsPerConnection">5</property>
        
        </named-config>
            
    </c3p0-config>

    相关文章

      网友评论

          本文标题:C3P0数据源的使用

          本文链接:https://www.haomeiwen.com/subject/eifxsttx.html