1、导入jar包
- 从网上下载c3p0的jar包及其依赖包
c3p0-0.9.5.5.jar
mchange-commons-java-0.2.19.jar
- 导入到工程中
2、DataSource的基本使用
DataSource
是JDK定义的接口类,c3p0只是这个接口类的一个实现-
c3p0的使用有两种方式:
- 通过c3p0创建一个Connection对象后再设置属性;
public static void main(String[] args) throws Exception { ComboPooledDataSource source = new ComboPooledDataSource(); source.setDriverClass("com.mysql.jdbc.Driver"); source.setJdbcUrl("jdbc:mysql://example.domain.com:3306/db"); source.setUser("username"); source.setPassword("password"); Connection conn = source.getConnection(); System.out.println(conn); }
- 通过配置文件自动加载Connection对象的属性,c3p0.properties文件或c3p0-config.xml文件都可以,但文件名是固定的
c3p0.driverClass=com.mysql.jdbc.Driver c3p0.jdbcUrl=jdbc:mysql://node.yusian.net:3306/db3?useSSL=false c3p0.user=root c3p0.password=Root@123 c3p0.initialPoolSize=5 c3p0.maxPoolSize=10 c3p0.checkoutTimeout=3000
<c3p0-config> <!--默认配置--> <default-config> <!-- JDBC基本配置 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://node.yusian.net:3306/db3?useSSL=false</property> <property name="user">root</property> <property name="password">Root@123</property> <!-- 连接池的基本配置 --> <property name="initialPoolSize">5</property> <property name="maxPoolSize">10</property> <property name="checkoutTimeout">3000</property> </default-config> <!-- 命名配置 --> <named-config name="other"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://node.yusian.net:3306/db3?useSSL=false</property> <property name="user">root</property> <property name="password">Root@123</property> <property name="initialPoolSize">5</property> <property name="maxPoolSize">8</property> <property name="checkoutTimeout">1000</property> </named-config> </c3p0-config>
public static void main(String[] args) throws Exception { DataSource ds = new ComboPooledDataSource(); Connection conn = ds.getConnection(); System.out.println(conn); }
- 配置文件中连接池的最大连接数是10个,通过for循环来获取连接对象,当循环第11次时即会报错
public static void main(String[] args) throws Exception { DataSource ds = new ComboPooledDataSource(); for (int i = 0; i < 11; i++) { Connection conn = ds.getConnection(); System.out.println(conn); } }
Pingback: Java数据库连接池Druid的基本使用 | 年年有"余"