常用的数据库连接池有俩种:dbcp和c3p0
数据库连接池作用:可以控制数据库连接池来优化效率,使得连接不必频繁获得和关闭操作
dbcp数据库连接池
使用前必须导入:mysql-connector-java-5.1.7-bin.jar,commons-dbcp-1.4.jar和commons-pool-1.5.5.jar俩个jar包
dbcp数据库连接池的创建有俩种方式。
第一种:提供BasicDataSource类,来创建连接池
BasicDataSource里提供了以下方法:
* setInitialSize(int count):设置连接池初始化连接个数
* setMaxActive(int count):设置同一时刻允许向数据库同时申请连接个数
* setMinIdle(int count):设置连接池允许存在的最少空闲连接数目
* setMaxWait(int count):设置向连接池申请连接的时间(单位为毫秒),超过时间会抛出异常* getConnection():获得连接对象Connection
以下为操作示例:
BasicDataSource basicDataSource=new BasicDataSource();
//设置连接池操作信息
basicDataSource.setDriverClassName("com.mysql.jdbc.Driver");//设置数据库类型
basicDataSource.setUrl("jdbc:mysql://localhost:3306/test");//设置连接数据库名
basicDataSource.setUsername("root"); //设置用户名
basicDataSource.setPassword("123456"); //设置登录密码
//设置连接池初始化连接个数
basicDataSource.setInitialSize(10);
//设置同一时刻内允许向连接池获得连接的最大连接数
basicDataSource.setMaxActive(20);
//设置在连接池内允许保存的最小空闲连接数
basicDataSource.setMinIdle(5);
//等待连接池分配连接的最长时间(单位为毫秒),超出该时间抛出异常,
basicDataSource.setMaxWait(5*1000);
//从连接池获得连接
Connection connection=basicDataSource.getConnection();
System.out.println(connection.getClass());
第二种方法:提供DataSource类,来创建连接池
BasicDataSourceFactory().createDataSource(properties):通过配置文件获得DataSource对象
getConnection():获得连接
注意:其余设置均可在配置文件完成,但需要名字小写开头且与方法名字对应
* 如:
* driverClassName=com.mysql.jdbc.Driver
* url=jdbc:mysql://localhost:3306/test
* maxActive=20
此方法通过读取配置文件设置好数据库连接池的设置
先在src目录下创建一个dbcp.properties配置文件,设置好以下参数
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456
initialSize=10
maxActive=20
minIdle=5maxWait=5000
再回到创建方法里:
//第二种获得连接的方法
Properties properties=new Properties();
InputStream input=Use_dbcp.class.getClassLoader().getResourceAsStream("dbcp.properties");
properties.load(input);
//通过配置文件设置连接池所有需要的参数
DataSource datasource=new BasicDataSourceFactory().createDataSource(properties);
System.out.println(datasource.getConnection());