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工具类的使用的更多相关文章

  1. 【转】【很全很新】C3P0 连接池和 DBUtils 配合事务使用总结

    [转]https://blog.csdn.net/guozhaohui628/article/details/84793028 很久没用原生连接池,最近想写个小功能,结果发现很多地方不太懂,然后网上搜 ...

  2. 为什么要用Jedis连接池+浅谈jedis连接池使用

    为什么要使用Jedis连接池 Redis作为缓存数据库理论上和MySQL一样需要客户端和服务端建立起来连接进行相关操作,使用MySQL的时候相信大家都会使用一款开源的连接池,例如C3P0.因为直连会消 ...

  3. day18(JDBC事务&连接池介绍&DBUtils工具介绍&BaseServlet作用)

    day18总结 今日思维导图: 今日内容 事务 连接池 ThreadLocal BaseServlet自定义Servlet父类(只要求会用,不要求会写) DBUtils à commons-dbuti ...

  4. mysql连接池的使用工具类代码示例

    mysql连接池代码工具示例(scala): import java.sql.{Connection,PreparedStatement,ResultSet} import org.apache.co ...

  5. Mysql数据库重要知识点(知了堂学习心得)

    Mysql数据库知识点 1.管理数据库语句: 使用数据库: use test; 添加数据库: create database 数据库名; create database test; 修改数据库: al ...

  6. C3P0连接池、DBCP连接池

    C3P0连接池: 配置文件:c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c ...

  7. JNDI配置c3p0连接池

    JNDI是什么呢? 就是java命名和文件夹接口.是SUN公司提供的一种标准的Java命名系统接口. 不好理解?简单说呢.他就是一个资源,放在tomcat里面的一个资源,今天我们就把数据库连接池放到t ...

  8. TensorFlow 2.0 深度学习实战 —— 浅谈卷积神经网络 CNN

    前言 上一章为大家介绍过深度学习的基础和多层感知机 MLP 的应用,本章开始将深入讲解卷积神经网络的实用场景.卷积神经网络 CNN(Convolutional Neural Networks,Conv ...

  9. java学习笔记41(数据库连接池 C3p0连接池)

    在之前的学习中,我们发现,我们需要频繁的创建连接对象,用完之后还需要在关闭资源,因为这些连接对象都是占资源的,但是又不得不创建,比较繁琐,为了解决这种情况,Java出现了数据库连接池: 数据库连接池的 ...

随机推荐

  1. NYOJ15-括号匹配(二)-区间DP

    pid=15">http://acm.nyist.net/JudgeOnline/problem.php? pid=15 dp[i][j]表示从i到j至少须要加入多少个括号才干满足匹配 ...

  2. Bootstrap入门Demo——制作路径导航栏

    今天在在群里聊天的时候看到一仅仅程序猿发了一张用Bootstrap做的界面.感觉挺好看.然后去官网看了下组件.发现都挺美丽的,然后看到了路径导航栏,刚好要做这个东西,然后就下了Bootstrap的源代 ...

  3. C# 函数式编程 —— 使用 Lambda 表达式编写递归函数

    最近看了赵姐夫的这篇博客http://blog.zhaojie.me/2009/08/recursive-lambda-expressions.html,主要讲的是如何使用 Lambda 编写递归函数 ...

  4. DDD理论学习系列——案例及目录

    目录 DDD理论学习系列(1)-- 通用语言 DDD理论学习系列(2)-- 领域 DDD理论学习系列(3)-- 限界上下文 DDD理论学习系列(4)-- 领域模型 DDD理论学习系列(5)-- 统一建 ...

  5. Java Restful Web Service 学习指南

    Restful是一种架构style,目前常说的有restful web service, resultful http.现在热搜榜的微服务,大多数会采用Restful方式. JAX-RS 作为一个Re ...

  6. 9.python面向对象编程

    面向对象的几个核心特性如下 Class 类一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性(variables(data)).共同的方法 Object 对象 一 ...

  7. 使用canvas实现绚丽的时钟特效

    源码 https://github.com/2016Messi/Gorgeous-clock 效果展示 https://2016messi.github.io/Gorgeous-clock/ 如果各位 ...

  8. Python笔记·第十一章—— 函数 (二) 装饰器

    一 为何要用装饰器 有的时候写完一段代码,过段时间需要对它进行升级.添加一些新功能,但是如果要直接修改原来的代码会影响其他人的调用,所以就需要一个不修改源代码且不修改原函数的调用方式的东西又能为原函数 ...

  9. margin相关

    1.图片与文字对齐问题 如果图片和文字差不多大时,使用兼容性强的margin负值方法. 方法:img{margin:0 3px -3px 0;} 2.div嵌套后margin出现失效(转移)问题 原因 ...

  10. C# 杂活

    1 下拉框 List<Model.Sys.AccountModel> AcModel = BLL.Sys.AccountBLL.Instance.GetModelList("Ro ...