没有连接池的情况

在说连接池之前,先说一下,如果没有连接池的情况

每次crud操作要使用数据库的时候,都要创建一个数据库连接对象,比较耗时

普通的JDBC数据库连接使用 DriverManager 来获取

每次想数据库建立连接的时候都要将 Connection 加载到内存中

连接需要验证用户名和密码,需要 0.5s ~ 1s

什么是连接池

池:保存对象的容器

连接池:保存数据库连接对象的容器

连接池的作用

初始化时,创建一定数量的对象,需要的时候直接从池中取出一个空闲的对象

使用完后不直接释放掉对象,而是再放到连接池中以方便下一次对象请求可以直接复用

连接池技术的优势是,可以消除对象创建所带来的延迟,从而提高系统的性能

连接池中的属性

javax.sql.DataSource接口来表示连接池

DataSource和JDBC一样,也是只提供一个接口,由第三方组织来提供

常见连接池

DBCP:Spring推荐,tomcat的数据源使用的就是 DBCP

C3P0:性能比较差

Druid:阿里巴巴提供的,号称最好的连接池,他里面还有更多的功能

DataSource数据源和连接池 Connection pool 是同一个东西,只是叫法不一样而已,所以 DataSource就是连接池

使用连接池和不是用连接池的区别

获取方式:

传统:Connection connection = DrierManager.getConnection(url.username, password);

连接池:Conncection connection = DataSource对象.getConnection();