一、DBCP数据库连接池
1、使用DBCP数据库连接池需要导入以下两个JAR包:
1)commons-dbcp2-2.0.jar
2)commons-pool2-2.2.jar
2、使用DBCP数据库连接池需要dbcp.properties文件。
3、使用代码如下:
1)dbcp.properties文件代码:
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/mydb3 username=root password=root
2)调用代码:
package com.gnnuit.web.demo; import java.io.InputStream; import java.sql.Connection; import java.util.Properties; import javax.sql.DataSource; import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory; //DBCP的使用 public class Demo2 { public static void main(String[] args) throws Exception { Properties prop = new Properties(); InputStream is = Demo2.class.getClassLoader().getResourceAsStream( "com/gnnuit/web/config/dbcp.properties"); prop.load(is); DataSource ds = BasicDataSourceFactory.createDataSource(prop); long start = System.currentTimeMillis(); for (int i = 0; i < 50000; i++) { Connection conn = ds.getConnection(); if (conn != null) { System.out.println(i + "次连接"); } conn.close(); } long end = System.currentTimeMillis(); System.out.println((end - start) + "毫秒"); } }
二、c3p0连接池
1、使用c3p0连接池需要导入以下两个包:
1)c3p0-0.9.5-pre8.jar
2)mchange-commons-java-0.2.7.jar
2、使用c3p0连接池需要在/WEB-INF/classes/目录下存放c3p0-config.xml文件,该类ComboPooledDataSource在创建时会自动在指定的目录下找xml文件,并加载默认设置。
3、使用代码如下:
1)c3p0-config.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">root</property> <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/mydb3</property> </default-config> </c3p0-config>
2)调用代码如下:
package com.gnnuit.web.demo; import java.sql.Connection; import com.mchange.v2.c3p0.ComboPooledDataSource; //C3P0的用法 public class Demo4 { public static void main(String[] args) throws Exception { ComboPooledDataSource cpds = new ComboPooledDataSource(); long start = System.currentTimeMillis(); for (int i = 0; i < 5000; i++) { Connection conn = cpds.getConnection(); if (conn != null) { System.out.println(i + "次连接"); } conn.close(); } long end = System.currentTimeMillis(); System.out.println((end - start)/1000 + "秒"); } }