1.DBCP
导包:commons-dbcp2-2.1.1.jar、commons-pool2-2.4.2.jar、mysql-connector-java-5.1.40-bin.jar
package zh.dbcp.demo; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; import org.apache.commons.dbcp2.BasicDataSource; /** * BasicDataSource,手动设置连接池信息 * @author ZH * */ public class DBCPDemo1 { public static void main(String[] args) { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/day0528"); dataSource.setUsername("root"); dataSource.setPassword("zh1277718668"); dataSource.setInitialSize(10); dataSource.setMaxIdle(3); Connection connection = null; try { connection = dataSource.getConnection(); DatabaseMetaData metaData = connection.getMetaData(); System.out.println(connection); System.out.println(metaData.getDriverName()); System.out.println(metaData.getURL()); System.out.println(metaData.getUserName()); // 804611486, URL=jdbc:mysql://localhost:3306/day0528, UserName=root@localhost, MySQL Connector Java // MySQL Connector Java // jdbc:mysql://localhost:3306/day0528 // root@localhost } catch (SQLException e) { e.printStackTrace(); } finally { try { dataSource.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
或者
package zh.dbcp.demo; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.util.Properties; import org.apache.commons.dbcp2.BasicDataSource; import org.apache.commons.dbcp2.BasicDataSourceFactory; /** * BasicDataSourceFactory,使用配置文件 * * @author ZH * */ public class DBCPDemo2 { public static void main(String[] args) { ClassLoader classLoader = DBCPDemo2.class.getClassLoader(); InputStream in = classLoader .getResourceAsStream("zh/dbcp/demo/dbcp.properties"); Properties prop = new Properties(); try { prop.load(in); } catch (IOException e) { e.printStackTrace(); } BasicDataSource dataSource = null; Connection connection = null; DatabaseMetaData metaData = null; try { // BasicDataSourceFactory 静态方法创建BasicDataSource dataSource = BasicDataSourceFactory.createDataSource(prop); connection = dataSource.getConnection(); metaData = connection.getMetaData(); System.out.println(connection); System.out.println(metaData.getDriverName()); System.out.println(metaData.getURL()); System.out.println(metaData.getUserName()); // 21257599, URL=jdbc:mysql://localhost:3306/day0528, UserName=root@localhost, MySQL Connector Java // MySQL Connector Java // jdbc:mysql://localhost:3306/day0528 // root@localhost } catch (Exception e) { e.printStackTrace(); } } }
2.C3P0
导包:c3p0-0.9.5.2.jar、mysql-connector-java-5.1.40-bin.jar
在src下导入c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- 默认配置,当使用ComboPooledDataSource无参构造器时,使用的就是这个配置 --> <default-config> <!-- 基本配置 --> <property name="jdbcUrl">jdbc:mysql://localhost:3306/day0528</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">zh1277718668</property> <!-- 每次增量,当需要创建Connection对象时,一次创建几个 --> <property name="acquireIncrement">3</property> <!-- 当创建池对象后,池中应该有几个Connection对象 --> <property name="initialPoolSize">10</property> <!-- 池中最少Connection个数,如果少于这个值,就会创建Connection --> <property name="minPoolSize">2</property> <!-- 池中最大连接个数 --> <property name="maxPoolSize">10</property> </default-config> <!-- 命名配置,new ComboPooledDataSource("customize")时,使用的就是这个配置 --> <named-config name="customize"> <property name="jdbcUrl">jdbc:mysql://localhost:3306/day0528</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">zh1277718668</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>
package zh.c3p0.demo; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * c3p0连接池 * * @author ZH * */ public class C3P0Demo1 { public static void main(String[] args) throws SQLException { // 记载默认配置 ComboPooledDataSource dataSource1 = new ComboPooledDataSource(); // 加载自定义配置 ComboPooledDataSource dataSource2 = new ComboPooledDataSource("customize"); Connection connection1 = dataSource1.getConnection(); DatabaseMetaData metaData1 = connection1.getMetaData(); System.out.println(connection1); System.out.println(metaData1.getDriverName()); System.out.println(metaData1.getURL()); System.out.println(metaData1.getUserName()); // com.mchange.v2.c3p0.impl.NewProxyConnection@50675690 [wrapping: com.mysql.jdbc.JDBC4Connection@31b7dea0] // MySQL Connector Java // jdbc:mysql://localhost:3306/day0528 // root@localhost Connection connection2 = dataSource2.getConnection(); DatabaseMetaData metaData2 = connection2.getMetaData(); System.out.println(connection2); System.out.println(metaData2.getDriverName()); System.out.println(metaData2.getURL()); System.out.println(metaData2.getUserName()); // com.mchange.v2.c3p0.impl.NewProxyConnection@387c703b [wrapping: com.mysql.jdbc.JDBC4Connection@224aed64] // MySQL Connector Java // jdbc:mysql://localhost:3306/day0528 // root@localhost } }