数据源c3p0的使用
c3p0的使用,数据,开源,jar,c3p02016-07-03
首先我们先准备c3p0的jar包,我这里的jar包名字叫
c3p0-0.9.1.2.jar
我们一共有三种配置方式,现在先用代码java列出来
import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.SQLException; import org.junit.Test; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * c3p0 * 性能好,开源以后一般用它 */ public class Demo1 { /** * 代码配置 * @throws PropertyVetoException * @throws SQLException */ // @Test public void connPool1() throws PropertyVetoException, SQLException { // 创建连接池对象 ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 对池进行四大参数的配置 dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver"); dataSource.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:orcl"); dataSource.setUser("chj"); dataSource.setPassword("chj"); // 池配置 //每次新增多少连接 dataSource.setAcquireIncrement(5); //初始连接数多少 dataSource.setInitialPoolSize(20); //最少连接数 dataSource.setMinPoolSize(2); //最大连接数 dataSource.setMaxPoolSize(50); Connection con = dataSource.getConnection(); System.out.println(con); con.close(); } /** * 配置文件的默认配置 * @throws SQLException */ // @Test public void connPool2() throws SQLException{ /** * 在创建连接池对象时,这个对象就会自动加载配置文件!不用我们来指定 */ ComboPooledDataSource dataSource = new ComboPooledDataSource(); Connection con = dataSource.getConnection(); System.out.println(con); con.close(); } /** * 使用命名配置信息 * @throws SQLException */ @Test public void connPool3() throws SQLException{ /** * 构造器的参数指定命名配置元素的名称! * <named-config name="oracle-config"> */ ComboPooledDataSource dataSource = new ComboPooledDataSource("oracle-config"); Connection con = dataSource.getConnection(); System.out.println(con); con.close(); } }
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- 这是默认配置信息 --> <default-config> <!-- 连接四大参数配置 --> <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb3</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">123</property> <!-- 池参数配置 --> <property name="acquireIncrement">3</property> <property name="initialPoolSize">10</property> <property name="minPoolSize">2</property> <property name="maxPoolSize">10</property> </default-config> <!-- 专门为oracle提供的配置信息 --> <named-config name="oracle-config"> <property name="jdbcUrl">jdbc:oracle:thin:@localhost:1521:orcl</property> <property name="driverClass">oracle.jdbc.driver.OracleDriver</property> <property name="user">luowg</property> <property name="password">luowg</property> <!-- 连接不足时,会自动创建连接,这里指定会创建多少连接 --> <property name="acquireIncrement">3</property> <property name="initialPoolSize">10</property> <property name="minPoolSize">2</property> <property name="maxPoolSize">10</property> </named-config> </c3p0-config>
上面的只是个例子,教如何使用。
但在实际的javaWeb开发中,我们的数据源一般都受到spring的管理,所以我们在spring是怎么注入的呢?
<!-- 配置数据源 --> <!-- 导入资源文件 --> <context:property-placeholder location="classpath:/config/database.properties"/> <!-- c3p0 数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> <property name="driverClass" value="${jdbc.driver}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="initialPoolSize" value="5"></property> <property name="minPoolSize" value="5"/> <property name="maxPoolSize" value="10"/> <property name="maxIdleTime" value="600"/> <property name="maxStatements" value="0"/> </bean>
我的资源文件database.properties如下
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://localhost\:3306/ordro?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true&failOverReadOnly\=false jdbc.username=chj jdbc.password=chj jdbc.initPoolSize=5 jdbc.maxPoolSize=10
具体可以看我的文章spring和mybatis的结合,里面就是用到了c3p0数据源。
文章链接:http://blog.csdn.net/qq_18895659/article/details/51772577