第3.33课 上课 JDBC深入介绍, 数据库大对象存储, 元数据

3_33

JDBC深入介绍

 数据连接池

  C3P0数据源

 

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。

 

目前使用它的开源项目有Hibernate,Spring等。

   下载导入C3P0的Jar包

 

官方下载地址:

http://www.mchange.com/projects/c3p0/

 

 

   C3P0数据源配置

    方式一:通过属性文件配置

#注意必须要以c3p0.开头

#驱动

c3p0.driverClass=com.mysql.jdbc.Driver

#地址

c3p0.jdbcUrl=jdbc:mysql://localhost:3306/yayadou

#用户名

c3p0.user=root

#密码

c3p0.password=root

#-------------------------------

#连接池初始化时创建的连接数

c3p0.initialPoolSize=10

#连接池保持的最小连接数

c3p0.minPoolSize=3

#连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大,default : 15

c3p0.maxPoolSize=15

#连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接,单位秒

c3p0.maxIdleTime=100

#连接池在无空闲连接可用时一次性创建的新数据库连接数,default:3

c3p0.acquireIncrement=3

#连接池在获得新连接失败时重试的次数,如果小于等于0则无限重试直至连接获得成功

c3p0.acquireRetryAttempts=30

#连接池在获得新连接时的间隔时间

c3p0.acquireRetryDelay=1000

 

    方式二:通过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://localhost:3306/yayadou</property>

<property name="user">root</property>

<property name="password">root</property>

<property name="maxPoolSize">20</property>

<property name="minPoolSize">5</property>

<property name="initialPoolSize">5</property>

<property name="maxIdleTime">60</property>

<!-- 连接数据库超时的时长3000毫秒 -->

<property name="checkoutTimeout">3000</property>

</default-config>

 

<!-- 命名的配置 -->

<named-config name="yayadou">

<property name="driverClass">com.mysql.jdbc.Driver</property>

<property name="jdbcUrl">jdbc:mysql://localhost:3306/yayadou</property>

<property name="user">root</property>

<property name="password">root</property>

<property name="maxPoolSize">10</property>

<property name="minPoolSize">5</property>

<property name="initialPoolSize">5</property>

<property name="maxIdleTime">60</property>

<property name="checkoutTimeout">3000</property>

</named-config>

</c3p0-config>

    XML文件优先于属性文件的配置

(方式二:通过XML文件配置)

   实例

1. 引入c3p0的jar包和数据库的驱动到工程中;

 

2.在src目录下新建一个c3p0.properties文件:

c3p0.driverClass=com.mysql.jdbc.Driver

c3p0.jdbcUrl=jdbc:mysql://localhost:3306/yayadou

c3p0.user=root

c3p0.password=root

c3p0.maxPoolSize=10

c3p0.minPoolSize=5

c3p0.initialPoolSize=5

c3p0.maxIdleTime=60

c3p0.checkoutTimeout=3000

 

3.创建c3p0连接池

ComboPooledDataSource ds = new ComboPooledDataSource();

 

4.从连接池获取数据库连接

//第一步:从数据库连接池中获取数据库连接

Connection conn = ds.getConnection();

 

//第二步:创建PreparedStatement对象

PreparedStatement pstat = conn.prepareStatement("select * from article_table");

 

//第三步:执行数据库查询

ResultSet rs = pstat.executeQuery();

 

//第五步:释放数据库连接,连接池回收

conn.close();

 

 

 

 

    通过 show processlist命令窗口数据库连接数量

posted on 2018-01-31 22:58  東風★破  阅读(135)  评论(0)    收藏  举报

导航