c3p0数据源连接问题

学习JavaWeb之使用c3p0连接数据库–MySQL


  1. 首先在你创建的JavaWeb项目中导入c3p0的jar包,如下图中的c3p0-0.9.1.2.jar,eclipse中导入的时候直接将jar包复制到 lib 目录下。

  2. 在src目录下创建 c3p0-config.xml 文件,配置连接池。

    • 配置内容如下:
      • 这里注意的是<name-config name="mvcapp">
        这里的name属性是你只有获取数据源需要用的。
    • 代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
        <!-- This app is massive! -->
        <!-- 这里的 name 是后来获取数据源的时候使用的 -->
        <named-config name="mvcapp">
            <property name="driverClass">com.mysql.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql://localhost:3306/testjdbc</property>
            <property name="user">root</property>
            <property name="password">123456</property>


            <!-- 如果连接不够的话,一次问数据库要多少个连接 -->
            <property name="acquireIncrement">5</property>
            <!-- 初始化的个数 -->
            <property name="initialPoolSize">10</property>
            <!-- 最小连接数 -->
            <property name="minPoolSize">10</property>
            <!-- 最大连接数 -->
            <property name="maxPoolSize">1000</property>

            <!-- intergalactoApp adopts a different approach to configuring statement 
                caching -->
            <!-- 最多的Statements -->
            <property name="maxStatements">20</property>
            <!-- 一个连接可以使用的Statements的数量 -->
            <property name="maxStatementsPerConnection">5</property>

        </named-config>
</c3p0-config>
  1. 最后创建一个Java类:

    • 这里需要注意的几点是:
      1. 必须在静态代码块中获取到数据源;
      2. 初始化时的参数就是你在c3p0-config.xml文件中设置的<name-config name="mvcapp">中name 的属性值。
/**
 * JDBC的操作工具类 获取数据源连接数据库
 * 
 * @author ASUS
 * 
 */
public class JdbcUtils {

    // 为什么是静态的,因为想让数据源只有一份就可以了
    private static ComboPooledDataSource dataSource = null;

    static {
        // 数据源只能被初始化一次
        dataSource = new ComboPooledDataSource("mvcapp");
    }

    // // 获得数据源
    // public static DataSource getDataSource() {
    // return dataSource;
    // }

    /**
     * 返回数据源的一个Connection对象
     * 
     * @return
     * @throws SQLException
     */
    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }

    public static void releaseConnection(Connection connection) {
        try {
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("Connection 连接关闭异常");
        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值