c3p0 java调用,Java 开发 C3p0 数据库连接池使用

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有hibernate,spring等。c3p0的出现,是为了大大提高应用程序和数据库之间访问效率的。

它的特性:

编码的简单易用

连接的复用

连接的管理

一、 C3p0 连接池配置

1.1、安装依赖包

首先要下载 C3p0 的依赖包,下载地址:https://sourceforge.NET/projects/c3p0/files/。将下载的包文件中lib下的c3p0-xxxx.jar和mchange-commons-Java-xxxx.jar导入工程依赖库中。

推荐使用 Maven 方式,自动化管理依赖包。

1.2、编辑 C3p0 配置文件

在工程的src下新建一个名为c3p0-config.xml的配置文件;内容为:

root

java

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/jdbc

10

30

100

10

root

java

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/jdbc

10

30

100

10

二、代码开发使用 C3p0连接池

2.1、ConnectionPool工具类

创建一个工具类,用于实例化连接池对象。

package com.study.cc;

import java.sql.Connection;

import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class ConnectionPool {

private DataSource ds;

private static ConnectionPool pool;

private ConnectionPool(){

ds = new ComboPooledDataSource("mySource");

}

public static final ConnectionPool getInstance(){

if(pool==null){

try{

pool = new ConnectionPool();

}catch (Exception e) {

e.printStackTrace();

}

}

return pool;

}

public synchronized final Connection getConnection() {

try {

return ds.getConnection();

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

}

其中的mySource是c3p0-config.xml中named-config的name值。DataSource的实例使用ComboPooledDataSource来生成的。

2.2、代码使用连接池

业务代码通过调用工具类,申请和释放数据库连接对象,提交数据库操作语句。

package com.study.cc;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class TestMain {

public static void main(String[] args) {

ConnectionPool pool = ConnectionPool.getInstance();

Connection con = null;

PreparedStatement stmt= null;

ResultSet rs = null;

try{

con = pool.getConnection();

stmt = con.prepareStatement("select sysdate as nowtime from dual");

rs = stmt.executeQuery();

while(rs.next()){

System.out.println("nowtime="+rs.getString("nowtime"));

}

} catch (Exception e) {

e.printStackTrace();

}finally{

try {

rs.close();

stmt.close();

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值