什么是数据库连接池
有这样的一种现象:
用java代码操作数据库,需要数据库连接对象,一个用户至少要用到一个连接。现在假设有成千上百万个用户,就要创建十分巨大数量的连接对象,这会使数据库承受极大的压力,为了解决这种现象,一种技术出现了,这就是数据库连接池。
数据库连接池的原理
所谓数据库连接池,可以看作 :在用户和数据库之间创建一个”池”,这个池中有若干个连接对象,当用户想要连接数据库,就要先从连接池中获取连接对象,然后操作数据库。一旦连接池中的连接对象被拿光了,下一个想要操作数据库的用户必须等待,等待其他用户释放连接对象,把它放回连接池中,这时候等待的用户才能获取连接对象,从而操作数据库。
数据库连接池的属性
通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等
连接对象初始的数量:initSize,一开始就创建若干个,当不够时再添加
连接对象最大数量:maxSize,添加到最大值则不会再添加
DBCP连接池
druid连接池
DBCP的使用步骤
步骤一:导包,使用第三方的道具,必须导入相应的jar包。
需要导入两个jar包:commons-dbcp-1.4.jar包
commons-pool-1.5.6.jar包
c3p0连接池
简介:DBCP连接池是开源组织Apache软件基金组织开发的连接池实现。
事实上,tomcat服务器默认就会使用这个连接池道具。
下载jar包
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
/*
设置注册属性
* */
private static final String driver ="com.mysql.jdbc.Driver";
private static final String url = "jdbc:mysql://localhost:3306/mybatis";
private static final String user = "root";
private static final String password = "1qazxsw2";
@Test
public void TestPool() throws SQLException {
ComboPooledDataSource comboPooledDataSource=new ComboPooledDataSource();
try {
comboPooledDataSource.setDriverClass(driver);
comboPooledDataSource.setJdbcUrl(url);
comboPooledDataSource.setUser(user);
comboPooledDataSource.setPassword(password);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
for (int i=0;i<8;i++){
Connection connection=comboPooledDataSource.getConnection();
System.out.print(connection);
}
}
网友评论