数据库连接池
- 什么是连接池
池: 容器 (数组/集合)
连接池: 将数据库连接对象放在容器中, 供整个程序共享, 可以减少连接创建和关闭的次数, 实现连接的复用!!
2.为什么要使用数据库连接池
2.1传统方式操作数据库
2、使用连接池操作数据库
在传统方式中, 直接创建连接 和关闭连接是非常耗资源, 而且耗时间的一个过程, 效率低下.
如果要提高程序执行的效率, 就要减少连接创建和关闭的次数??
在程序一启动时, 就创建一批连接放在一个容器(池子)中, 供整个程序共享.
当用户需要连接时, 不要再自己创建, 而是直接从容器中获取一个连接对象, 接着再使用, 当用户用完连接之后, 也不需要关闭连接, 而是直接将连接还回连接池中. 这样一来就减少了连接创建和关闭的次数, 必然能够提高程序执行的效率!!!
3 如何使用C3P0连接池
1、导入开发包
2、创建数据库连接池
3、设置数据库连接的基本信息
(1)方式一:(不推荐)
pool.setDriverClass("com.mysql.jdbc.Driver");
pool.setJdbcUrl("jdbc:mysql:///jt_db?characterEncoding=utf-8");
pool.setUser("root");
pool.setPassword("root");
(2)方式二:(推荐)
在src源码目录下(或者其他的源码目录下), 提供一个名称为c3p0-config.xml的文件, 文件中配置内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">
com.mysql.jdbc.Driver
</property>
<property name="jdbcUrl">
jdbc:mysql:///jt_db?characterEncoding=utf-8
</property>
<property name="user">
root
</property>
<property name="password">
root
</property>
</default-config>
</c3p0-config>
在创建完c3p0连接池对象后, c3p0底层会到指定的位置(src源码目录下)寻找指定的(c3p0-config.xml)文件, 再通过解析xml文件, 读取其中的配置信息, 再设置到set方法中. 有了连接数据库的基本信息, 就可以连接数据库, 创建一批连接对象放在池中,供整个程序使用!!!
(3)方式三:(推荐) properties
在src源码目录下(或者其他的源码目录下), 提供一个名称为c3p0.properties的文件, 文件中配置内容如下:
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql:///jt_db?characterEncoding=utf-8
c3p0.user=root
c3p0.password=root
4、用完连接后,要将连接还回连接池中