• 浅谈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语句时使用

  • 相关阅读:
    Python学习 5day__基础知识
    pycharm 2018.1 专业版激活 亲测可用!!!
    JQuery 中 find() 和 filter() 的区别
    React 事件处理
    React 数据传递
    js操作cookie的一些注意项
    html5的技术要点
    css背景设置,让套图中某张图片居中显示的例子
    js对象封装内部图片的相关代码,采用base64图片串
    针对网上很多抱怨的言论,写了一个EF中update对象时,通用的遍历赋值方法,以供参考
  • 原文地址:https://www.cnblogs.com/yangyangfubin/p/8284119.html
Copyright © 2020-2023  润新知