zoukankan      html  css  js  c++  java
  • c3p0

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

    例:

    代码:

    工具类:

    package c3p0b01;
    import com.mchange.v2.c3p0.ComboPooledDataSource;

    import java.beans.PropertyVetoException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    public class C3P0Utils {
    // * 1 在成员变量位置 创建一个静态ComboPooledDataSource对象
    private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
    // * 2 在静态d代码块中使用ComboPooledDataSource对象 setxxxx 方法 设置数据库连接
    static {

    try {
    //设置注册驱动程序
    dataSource.setDriverClass("com.mysql.jdbc.Driver");
    //url
    dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/gip");
    //数据库用户名
    dataSource.setUser("root");
    //数据库用密码
    dataSource.setPassword("hao123456");

    } catch (PropertyVetoException e) {
    e.printStackTrace();
    }
    }
    // * 3 定义一个静态方法ComboPooledDataSource对象中获得数据库连接Connection
    public static Connection getConnection(){
    try {
    return dataSource.getConnection();
    } catch (SQLException e) {
    throw new RuntimeException("数据库连接失败"+e);
    }
    }
    // * 4 释放资源
    public static void close(ResultSet rs, Statement state,Connection conn){
    if(rs!=null){
    try {
    rs.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    if(state!=null){
    try {
    state.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }if(conn!=null){
    try {
    conn.close();// 归还
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    }
    }
    xml:
    <c3p0-config>
    <!-- 使用默认的配置读取连接池对象-->
    <default-config>
    <!-- 连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/gip</property>
    <property name="user">root</property>
    <property name="password">hao123456</property>

    <!-- 连接池参数 -->
    <!-- 初始连接数 -->
    <property name="initialPoolSize">5</property>
    <!-- 最大连接数 -->
    <property name="maxPoolSize">10</property>
    <!-- 最大等待时间 -->
    <property name="checkoutTimeout">2000</property>
    <!-- 最大空闲回收时间 -->
    <property name="maxIdleTime">1000</property>
    </default-config>


    操作类:
    package c3p0b01;

    import org.apache.commons.dbutils.QueryRunner;
    import org.springframework.jdbc.core.JdbcTemplate;

    import javax.sql.DataSource;
    import java.sql.Connection;
    import java.sql.SQLException;

    public class Demo01 {
    public static void main(String[] args) throws SQLException {
    QueryRunner qr = new QueryRunner();
    Connection conn = C3P0xmlUtils.getConnection();
    int i = qr.update(conn, "update gip_sort set sdesc='喝酒' where sid=?", 3);
    System.out.println(i);
    }
    }
  • 相关阅读:
    【刷题】BZOJ 1061 [Noi2008]志愿者招募
    【比赛】NOIP2017 列队
    react_app 项目开发 (6)_后台服务器端-node
    react_app 项目开发 (5)_前后端分离_后台管理系统_开始
    react_app 项目开发 (3)_单页面设计_react-router4
    react_app 项目开发 (2)_axios_pubsub-js
    react_app 项目开发
    React_基本原理_ajax
    React_生命周期
    组件化
  • 原文地址:https://www.cnblogs.com/mpenghao/p/11061030.html
Copyright © 2011-2022 走看看