数据库连接池

1、什么是连接池

常量池/线程池/连接池
池:指内存中的一片空间(容器,比如数组、集合)
连接池:就是将连接存放在容器中,供整个程序共享,可以实现连接 的复用,减少连接创建和关闭的次数,从而提高程序执行的效率。

可以在程序一启动时,就创建一批连接放在一个连接池中(容器), 当用户需要连接时,就从连接池中获取一个连接对象,用完连接后,不要 关闭,而是将连接再还回连接池中,这样一来,用来用去都是池中的这一 批连接,实现了连接的复用,减少了连接创建和关闭的次数,从而提高了 程序执行的效率。

2、使用C3P0连接池

所有的连接池都要实现一个接口——DataSource(数据源),因此连接 池也被叫做数据源。

1、导入开发包

2、创建数据库连接池(对象)

1 ComboPooledDataSource cpds = new ComboPooledDataSource();

3、设置连接数据库的基本信息

将连接参数提取到properties文件中或将连接参数提取到xml文件中

一、将连接参数提取到properties文件中

文件必须放在src(源码根目录)目录下
文件名必须叫做 c3p0.properties
在类目录下(开发时可以放在src或者类似的源码目录下),添加一个 c3p0.properties文件,配置内容如下:

1 c3p0.driverClass=com.mysql.cj.jdbc.Driver 
2 c3p0.jdbcUrl=jdbc:mysql:///jt_db?characterEncoding=utf8&serverTimezone=Asia/Shanghai 
3 c3p0.user=root 
4 c3p0.password=root

这种方式由于是c3p0到指定的位置下寻找指定名称的properties文件, 所以文件的位置必须是放在src或其他源码根目录下,文件名必须是 c3p0.properties。

二、:将连接参数提取到xml文件中

文件必须放在src(源码根目录)目录下
文件名必须叫做 c3p0-config.xml
在类目录下(开发时可以放在src或者类似的源码目录下),添加一个 c3p0-config.xml文件,配置内容如下:

1 <?xml version="1.0" encoding="UTF-8"?> 
2 <c3p0-config>
3   <default-config> 
4     <property name="driverClass">com.mysql.cj.jdbc.Driver</property>        
5     <property name="jdbcUrl">jdbc:mysql:///jt_db? characterEncoding=utf8&amp;serverTimezone=Asia/Shanghai</property> 
6     <property name="user">root</property>        
7     <property name="password">root</property>   
8   </default-config>
9 </c3p0-config>

这种方式由于是c3p0到指定的位置下寻找指定名称的xml文件,所以文 件的位置必须是放在src或其他源码根目录下,文件名必须是c3p0config.xml

4、从连接池中获取一个连接对象并进行使用

1 Connection conn = pool.getConnection();

5、用完连接后将连接还回连接池中

1 conn.close() /* 如果是自己创建的连接对象,这个连接对象没有经过任何的改动,调用 * conn.close方法,是将连接对象关闭 * 如果是从连接池中获取的连接对象,该连接对象在返回时就已经被连接池 * 改造了,将连接对象的close方法改为了还连接到连接池中 */

 



 

posted @ 2020-12-14 19:02  souwote  阅读(132)  评论(0编辑  收藏  举报