DBCP数据库连接池实例(2种方法实现)

来源:互联网 发布:js中的eval 编辑:程序博客网 时间:2024/05/22 18:33

第一种实现方式:不利用配置文件 关键代码如下:

package tan.com;import java.io.InputStream;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;import org.apache.commons.dbcp.BasicDataSourceFactory;import org.junit.Test;public class TestJDBC {/** * 如何使用DBCP数据库连接呢? * 1、加入2个jar包commons pool * 2、创建数据库连接池实例 * 3、创建常用的属性 * 4、从数据源中获取数据库连接 * @throws Exception  */@Testpublic void testDPCP() throws SQLException{BasicDataSource dataSource=null;//1.创建DBCP数据库源实例dataSource=new BasicDataSource();//2.为数据源实例指定必须的属性dataSource.setUsername("root");dataSource.setPassword("1234");dataSource.setUrl("jdbc:mysql://localhost:3306/tan");dataSource.setDriverClassName("com.mysql.jdbc.Driver");//3。指定数据源的一些可选的属性//1)指定数据库连接池中初始化连接数的个数dataSource.setInitialSize(5);//2)指定最大的连接数:同一时刻同时向数据库申请的连接数//最大空闲数,放洪峰过后,连接池中的连接过多,dataSource.setMaxActive(5);//3)指定最小连接数:数据库空闲状态下所需要保留的最小连接数//防止当洪峰到来时,再次申请连接引起的性能开销;dataSource.setMinIdle(2);//4)最长等待时间:等待数据库连接的最长时间,单位为毫秒,超出将抛出异常dataSource.setMaxWait(1000*5);//4.从数据源中获取数据库连接Connection connection=dataSource.getConnection();System.out.println(connection.getClass());}}
第二种方式使用配置文件:

/** * 1. 加载 dbcp 的 properties 配置文件: 配置文件中的键需要来自 BasicDataSource的属性. * 2. 调用 BasicDataSourceFactory 的 createDataSource 方法创建 DataSource * 实例 * 3. 从 DataSource 实例中获取数据库连接.  * @throws Exception  */@Testpublic void testDBCPWithDataSourceFactory() throws Exception{Properties properties = new Properties();InputStream inStream = TestJDBC.class.getClassLoader().getResourceAsStream("dbcp.properties");properties.load(inStream);DataSource dataSource =  BasicDataSourceFactory.createDataSource(properties);System.out.println( dataSource.getConnection()); }
配置文件属性:dbcp.properties

username=root
password=1234
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///tan


initialSize=10
maxActive=50
minIdle=5
maxWait=5000

运行结果:

jdbc:mysql:///tan, UserName=root@localhost, MySQL Connector Java


2014年5月14日 星期三笔记



0 0