zoukankan      html  css  js  c++  java
  • JDBC连接池-C3P0连接

    JDBC连接池-C3P0连接

    c3p0连接池的学习英语好的看英文原版      c3p0 - JDBC3 Connection and Statement Pooling  

    使用c3p0连接池  三种方法:1.实例化和配置      ComboPooledDataSource  2.使用DataSource工厂类  3建立自己池数据源

    c3p0 是开源免费的连接池

    1.实例化和配置      ComboPooledDataSource

    在src目录下添加c3p0-config.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/bookstore</property>
        <property name="user">root</property>
        <property name="password">root</property>
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">20</property>
      </default-config>
      
      <named-config name="bookStore"> 
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/bookstore</property>
        <property name="user">root</property>
        <property name="password">root</property>
      </named-config>
      
    </c3p0-config>

    Testc3p0.java

    package com.study.jdbc.test;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    
    
    
    import org.junit.Test;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    import com.study.jdbc.Utils.C3P0Utils;
    import com.study.jdbc.Utils.JDBCUtils_V3;
    
    public class TestC3p0 {
        @Test
        public void test1(){
            Connection conn=null;
            PreparedStatement pstm=null;
                    //加载c3p0-config.xml文件中默认的config
            ComboPooledDataSource dataSource =new ComboPooledDataSource();
                    //加载文件中 <named-config name="bookStore"> </named=config> 的配置信息
            ComboPooledDataSource dataSource1 =new ComboPooledDataSource("bookStore");
    
                try {
                    conn=dataSource.getConnection();
                    System.out.println(conn);
                    String sql="insert into user values(18,?,?)";
                    pstm=conn.prepareStatement(sql);
                    pstm.setString(1,"吕布");
                    pstm.setString(2,"点错");
                    int rows =pstm.executeUpdate();
                    if (rows>0) {
                        System.out.println("ok");
                    }else {
                        System.out.println("no");
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }finally{
                    //dataSource.backConnection(conn);
                    JDBCUtils_V3.release(conn,pstm,null);
                }
            
            
        }
    }
  • 相关阅读:
    elasticsearch:shard 和 replica 机制
    zookeeper 的 docker 镜像使用
    zookeeper 图形化的客户端工具:ZooInspector
    zookeeper 学习资料
    Spring Cloud 与 Dubbo、Spring Cloud 与 Docker、Spring Cloud 与 Kubernetes 比较
    可视化界面:ElasticSearch Head,最方便的是直接下载谷歌浏览器扩展程序
    java 中 heap(堆)和stack(栈)的区别
    Elasticsearch 学习资料
    025_lua脚本语言
    004_zookeeper运维之maxClientCnxns overflow
  • 原文地址:https://www.cnblogs.com/shaoxiaohuan/p/7763240.html
Copyright © 2011-2022 走看看