在说连接池之前,先说一下,如果没有连接池的情况
每次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();