上篇文章小编提到,当我们使用链接对象的时候我们就创建,使用完了就释放资源将其销毁,这样很耗费系统资源,我们利用对象连接池,就能解决这个问题,当我们调用对象对象的close()方法时,我们并没有将对象销毁,而是将其重新放回连接池中,以便下次使用。
1、创建DBCP配置文件
driverClassName=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/day15
username=root
password=123456
initialSize=10
maxActive=50
maxIdle=20
minIdle=5
maxWait=60000
connectionProperties=useUnicode=true;characterEncoding=utf8
defaultAutoCommit=true
defaultReadOnly=
defaultTransactionIsolation=READ_COMMITTED
此配置文件封装了数据库的链接信息,包括驱动类型,连接串(url),用户名与密码,最大连接数,最小链接数,默认事物的级别等等。
2、创建DBCPUtil工具类
public class DBCPUtil {
private static DataSource dataSource;
static{
try {
InputStream in =DBCPUtil.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
Properties props=new Properties();
props.load(in);
dataSource=BasicDataSourceFactory.createDataSource(props);
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static DataSource getDataSource(){
return dataSource;
}
public static Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException("获取数据库链接异常");
}
}
}<span style="font-family:KaiTi_GB2312;font-size:18px;"></span>
3、测试代码
public class DBCPTest {
public static void main(String[] args) throws SQLException {
Connection conn=DBCPUtil.getConnection();
System.out.println(conn.getClass().getName());
conn.close();
}
}
4、小结
DBCP数据库连接池。是apache 上的一个 java 连接池项目,也是tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。