知了堂学习心得浅谈c3p0连接池和dbutils工具类的使用

Posted yangyangfubin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知了堂学习心得浅谈c3p0连接池和dbutils工具类的使用相关的知识,希望对你有一定的参考价值。

1. C3P0概述

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

2. C3P0工具包下载地址

https://sourceforge.net/projects/c3p0/files/latest/download?source=files

导入jdbc和c3p0的jar包

jdbc包:mysql-connector-java-5.1.24-bin.jar

c3p0包:c3p0-0.9.5.2-sources.jar

C3p0辅助包:mchange-commons-java-0.2.11.jar

3. C3P0配置

 技术分享图片

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>

<!--配置连接池mysql-->
<named-config name="c3p0-config">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/music_sys</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 初始化连接池时建立多少个连接 -->
<property name="initialPoolSize">5</property>
<!-- 最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。 -->
<property name="maxIdleTime">60</property>
<!-- 连接池中保留的最大连接数 -->
<property name="maxPoolSize">10</property>
<!-- 连接池中保留的最小连接数 -->
<property name="minPoolSize">5</property>
<!-- 最大连接数 -->
<property name="maxStatements">20</property>
</named-config>

</c3p0-config>

4. 创建C3p0Utils工具类

技术分享图片

 

5. DBUtils工具类库的使用

DBUtils包下载地址:http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi

1)导包:commons-dbutils.jar

2)核心类:QueryRunner

3)常用方法:

技术分享图片

 

4)ResultSetHandler接口的实现类

单行结果: BeanHandler(), 构造器需要一个 Class 类型的参数, 用来把一行结果转换成指定类型的 javaBean 对象;

多行结果: BeanListHandler(), 构造器需要一个 Class 类型的参数, 用来把一行结果转换成一个 javaBean,若是多行结果, 就转换成 List 对象, 即多个 javaBean;

单行结果: MapHandler(), 把一行结果转换成 Map;

多行结果: MapListHandler(), 把一行记录转换成一个 Map, 若是多行, 就是多个 Map, 即 List;

单行单列: ScalarHandler(), 结果集是单行单列的, 返回一个 Object.

6.QueryRunner中的连接关闭问题

传入Connection时,需要手动关闭连接

如:操作多条SQL语句时,就必须手动获取连接和关闭连接(事务管理)

传入DataSource时,连接会自动关闭

如:操作一条SQL语句时使用

 

温馨提示:如需了解更多Java学习知识,请前往知了堂学习社区

www.zhiliaotang.com






















以上是关于知了堂学习心得浅谈c3p0连接池和dbutils工具类的使用的主要内容,如果未能解决你的问题,请参考以下文章

知了堂学习笔记Eclipse,Myeclipse连接MySQL数据库和Oracle数据库

知了堂学习笔记--关于对Node.js访问数据库连接池的理解与简单的建立---@wan<

[知了堂学习笔记]_mysql函数

知了堂学习笔记-SQL简单查询

知了堂学习笔记/JavaScript对象--/暖妮

知了堂学习笔记ajax工作原理