jdbc封装工具类(连接池)


c3p0配置文件:

c3p0-config.xml
<c3p0-config>
  
  <default-config>
      
    <property name="driverClass">com.mysql.jdbc.Driverproperty>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/testproperty>
    <property name="user">rootproperty>
    <property name="password">rootproperty>
    
    
    <property name="initialPoolSize">5property>
    <property name="maxPoolSize">10property>
    <property name="checkoutTimeout">3000property>
  default-config>

  <named-config name="otherc3p0"> 
    
    <property name="driverClass">com.mysql.jdbc.Driverproperty>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/day25property>
    <property name="user">rootproperty>
    <property name="password">rootproperty>
    
    
    <property name="initialPoolSize">5property>
    <property name="maxPoolSize">8property>
    <property name="checkoutTimeout">1000property>
  named-config>
c3p0-config>

工具类:

package com.huang;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DbUtils {
    
    private static DataSource dataSource = new ComboPooledDataSource();// 可以加参数,更改连接池配置
    
    public Connection conn = null;

    public PreparedStatement ps = null;
    
    public ResultSet rs = null;
    
    public Connection getconn() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public int update(String sql, Object[] obj) {
        conn = getconn();
        if(conn == null) {
            return 0;
        }
        try {
            ps = conn.prepareStatement(sql);
            
            if(obj!=null && obj.length>0) {
                
                for (int i = 0; i < obj.length; i++) {
                    ps.setObject(i+1, obj[i]);
                }
            }
            
            return ps.executeUpdate();
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }
    
    public void close() {
        if(rs!=null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(ps!=null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    public static void main(String[] args) throws Exception {
        DbUtils dbUtil = new DbUtils();
        int update = dbUtil.update("update user_info set username = ? where id = ?", new Object[] {"qq","1"});
        System.out.println(update);
        
        dbUtil.close();
    }

}