JDBC连接池之C3P0

1.导入jar包

c3p0-0.9.1.jar

mchange-commons-java-0.2.3.4(注:该jar包是c3p0数据库连接池的辅助包,没有这个包系统启动的时候会报classnotfoundexception,这是c3p0-0.9.2版本后分离出来的包,0.9.1的时候还是一个包就搞定的)

2.获取连接

C3P0有三种方式 实现。

1.自己动手写代码,实现数据源

例如:在类路径下配置一个属性文件,config.properties,内容如下:

driverClass=xxx

jdbcUrl=xxx

user=xxx

password=xxx

...

然后代码中实现

Properties props = new Properties();
InputStream in = Thread.class.getResourceAsStream("config.properties");
props.load(in);
in.close();
 
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass(props.getProperty("driverClass"));
cpds.setJdbcUrl(props.getProperty("jdbcUrl"));
cpds.setUser(props.getProperty("user"));
cpds.setPassword(props.getProperty("password"));

  

2.配置默认的熟悉文件

类路径下提供一个c3p0.properties文件(不能改名)

配置如下:

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost/paper_tag
c3p0.user=root
c3p0.password=admin

3.路径下提供一个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

  

这里我采用的是最简单的第二种方式。

package c3p0;

import java.sql.Connection;
import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Util {
	
	private static ComboPooledDataSource ds = new ComboPooledDataSource();
	
	public static Connection getConn() {
		try {
			return ds.getConnection();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
	
	

}

  

对于这种配置,如果classpath中有c3p0.properties的配置文件,代码中不需要设置连接信息,直接new ComboPooledDataSource(),他会自动读取配置文件中的配置。当然也可以使用c3p0-config.xml文件配置连接信息,使用xml作为配置信息的话,comboPoolDataSource还可以接受一个String参数,这个参数的名称是在c3p0-config.xml文件中配置,这就意味着我们可以在xml文件中可有都多个数据库源连接信息,比如可以是mysql,oracle的。

 

 

你可能感兴趣的:(JDBC连接池之C3P0)