编写DbPool
package epsilon.util;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
public class DbPool {
private static BasicDataSource basicDataSource = null;
//静态语句块只加载一次
static {
try {
Class.forName("com.mysql.jdbc.Driver");
Properties properties = new Properties();
InputStream inputStream = JdbcDbPool.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
properties.load(inputStream);
basicDataSource = BasicDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
//禁止实例化
private DbPool() {
super();
// TODO Auto-generated constructor stub
}
//获取连接
public static Connection getConnection() throws SQLException {
return basicDataSource.getConnection();
}
//释放连接
public static void close(Connection conn) {
try {
if( conn != null && !conn.isClosed())
conn.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
dbcp常用配置:
driverClassName 设置连接数据库的驱动程序
url 设置连接数据库的路径
username 设置连接数据库的用户名
password 设置连接数据库的密码
initialSize 初始化连接数,数据库连接池在初始化的时候会创建initialSize个连接
minIdle 最小连接数,是数据库一直保持的数据库连接数,所以如果应用程序对数据库连接的使用量不大,将有大量的数据库资源被浪费。
maxIdle 设置连接池中处于空闲状态的数据库连接的最大数目,0表示不受限制
maxActive 设置连接池中处于活动状态的数据库连接的最大数目,0表示不受限制
maxTotal 是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求被加入到等待队列中。
maxWait 设置当连接池中没有处于空闲状态的连接时请求数据库连接的请求的最长等待时间(单位为ms),如果超出该时间将抛出异常,-1表示无期限等待
配置文件:dbcpconfig.properties
#\u914D\u7F6E\u8BBE\u7F6E
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/text3
username=root
password=chen
#\u521D\u59CB\u5316\u8FDE\u63A5
initialSize=10
#\u6700\u5927\u8FDE\u63A5\u6570\u91CF
maxActive=3
#\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5
maxIdle=10
#\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5
minIdle=5
#\u8D85\u65F6\u7B49\u5F85\u65F6\u95F4\u4EE5\u6BEB\u79D2\u4E3A\u5355\u4F4D 6000\u6BEB\u79D2/1000\u7B49\u4E8E60\u79D2
maxWait=1000
配置文件放在src文件夹下