JDBC访问数据库操作详解(三)之数据库连接池:以MySQL为例
1. 数据库连接池简介
传统获取数据库连接的方式存在的问题:
- 每一次获取连接时都需要向数据库发送请求建立连接,耗时、效率低
- 访问结束后会断开与数据库的连接,下次访问时需要重新建立连接
- 并发访问量较大时,网站性能会受到很大的影响
- 安全性和稳定性相对较差
使用连接池技术:
- 原理:创建一个连接池pool,在该连接池创建时,会先向数据库申请建立多个连接(初始连接数),当用户需要连接时直接从连接池中获取即可
- 访问结束后会将连接归还给连接池,可以被其他用户重复使用
2. 常用连接池
开源的数据库连接池:
- dbcp
Apache开源项目,全程Database Connection Pool,也称为commons-dbcp
Apache是一个运作开源项目的非盈利性组织,提供了很多开源项目(jar包、软件)
Apache官网:http://www.apache.org/
-
druid
阿里巴巴的开源项目,俗称为“德鲁伊”
-
c3p0(已经没落)
3.用法
3.1 使用dbcp
添加jar包:commons-dbcp.jar、commons-pool.jar前者依赖于后者
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.commons.dbcp2.BasicDataSource;
public class Test8 {
public static void main(String[] args) throws SQLException {
test01();
}
//基本用法
public static void test01() throws SQLException {
//创建数据库连接池(数据源)
BasicDataSource ds = new BasicDataSource();
//设置连接池的属性(参数)(驱动、url、用户名、密码也都要设置)
ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/my_database?useUnicode=true"
<