zoukankan      html  css  js  c++  java
  • 数据库连接dbcp$c3p0

     

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

    <c3p0-config>

    <!-- 这是默认配置信息 -->

    <default-config name="hoobey"

    <!-- 连接四大参数配置 -->

    <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>

    <property name="driverClass">com.mysql.jdbc.Driver</property>

    <property name="user">root</property>

    <property name="password">123456</property>

    <!-- 池参数配置 -->

    <property name="acquireIncrement">3</property>

    <property name="initialPoolSize">10</property>

    <property name="minPoolSize">2</property>

    <property name="maxPoolSize">10</property>

    </default-config>

    </c3p0-config>

    package cn.itcast.demo1;

    import java.beans.PropertyVetoException;

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import org.junit.Test;

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    /**

     * c3p0

     * @author cxf

     *

     */

    public class c3p0 {

    /**

     * 代码配置

     * @throws PropertyVetoException

     * @throws SQLException

     */

    @Test

    public void fun1() throws PropertyVetoException, SQLException {

    // 创建连接池对象

    ComboPooledDataSource dataSource = new ComboPooledDataSource();

    // 对池进行四大参数的配置

    dataSource.setDriverClass("com.mysql.jdbc.Driver");

    dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mydb1");

    dataSource.setUser("root");

    dataSource.setPassword("123456");

    // 池配置

    dataSource.setAcquireIncrement(5);

    dataSource.setInitialPoolSize(20);

    dataSource.setMinPoolSize(2);

    dataSource.setMaxPoolSize(50);

    Connection con = dataSource.getConnection();

    String sql = "select * from products";

    Statement stmt = con.createStatement();

    ResultSet rs = (ResultSet) stmt.executeQuery(sql);

    int count = rs.getMetaData().getColumnCount();

    while(rs.next()){

    for(int i=1; i<=count; i++){

    System.out.println(rs.getString(i));

    if(i<count){

    System.out.println(",");

    }

    }

    }

    rs.close();

    stmt.close();

    con.close();

    }

    /**

     * 配置文件的默认配置

     * @throws SQLException

     */

    @Test

    public void fun2() throws SQLException{

    /**

     * 在创建连接池对象时,这个对象就会自动加载配置文件!不用我们来指定

     */

    ComboPooledDataSource dataSource  = new ComboPooledDataSource();

    Connection con = dataSource.getConnection();

    System.out.println(con);

    String sql = "select * from products";

    Statement stmt = con.createStatement();

    ResultSet rs = (ResultSet) stmt.executeQuery(sql);

    int count = rs.getMetaData().getColumnCount();

    while(rs.next()){

    for(int i=1; i<=count; i++){

    System.out.println(rs.getString(i));

    if(i<count){

    System.out.println(",");

    }

    }

    }

    rs.close();

    stmt.close();

    con.close();

    con.close();

    }

    /**

     * 使用命名配置信息

     * @throws SQLException

     */

    @Test

    public void fun3() throws SQLException{

    /**

     * 构造器的参数指定命名配置元素的名称!

     * <named-config name="oracle-config">

     */

    ComboPooledDataSource dataSource  = new ComboPooledDataSource("hoobey");

    Connection con = dataSource.getConnection();

    System.out.println(con.getClass().getName());

    con.close();

    }

    }

    package cn.itcast.demo1;

    import java.beans.PropertyVetoException;

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import org.apache.commons.dbcp.BasicDataSource;

    import org.junit.Test;

    /**

     * c3p0

     * @author cxf

     *

     */

    public class dbcp {

    /**

     * 代码配置

     * @throws PropertyVetoException

     * @throws SQLException

     */

    @Test

    /*

     * dbcp连接池 commons-dbcp-1.4.jar commons-pool-1.3.jar

     */

    public void fun1() throws PropertyVetoException, SQLException {

    // 创建连接池对象

    BasicDataSource dataSource = new BasicDataSource();

    // 对池进行四大参数的配置

    dataSource.setDriverClassName("com.mysql.jdbc.Driver");

    dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");

    dataSource.setUsername("root");

    dataSource.setPassword("123456");

    // 池配置

    dataSource.setMaxActive(20);

    dataSource.setMinIdle(3);

    dataSource.setMaxWait(200);

    Connection con = dataSource.getConnection();

    System.out.println(con.getClass().getName());

    String sql = "select * from products";

    Statement stmt = con.createStatement();

    ResultSet rs = (ResultSet) stmt.executeQuery(sql);

    int count = rs.getMetaData().getColumnCount();

    while(rs.next()){

    for(int i=1; i<=count; i++){

    System.out.println(rs.getString(i));

    if(i<count){

    System.out.println(",");

    }

    }

    }

    rs.close();

    stmt.close();

    con.close();

    }

    }

    package cn.itcast.jdbc;

    import java.sql.Connection;

    import java.sql.SQLException;

    import javax.sql.DataSource;

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    public class JdbcUtils {

    // 配置文件的默认配置!要求你必须给出c3p0-config.xml!!!

    private static ComboPooledDataSource dataSource = new ComboPooledDataSource();

    /**

     * 使用连接池返回一个连接对象

     * @return

     * @throws SQLException

     */

    public static Connection getConnection() throws SQLException {

    return dataSource.getConnection();

    }

    /**

     * 返回连接池对象!

     * @return

     */

    public static DataSource getDataSource() {

    return dataSource;

    }

    }

    -------------------------------------------------------------------------------------------

    public void fun4() throws SQLException{
      System.out.println("---------最简单的获取连接对象的方法---------------------------------------");
      Connection con = JdbcUtil.getConnection();
      String sql = "select * from products";
      Statement stmt = con.createStatement();
      ResultSet rs = (ResultSet) stmt.executeQuery(sql);
      int count = rs.getMetaData().getColumnCount();
      while(rs.next()){
       for(int i=1; i<=count; i++){
        System.out.println(rs.getString(i));
        if(i<count){
         System.out.println(",");
        }
       }
      }
      rs.close();
      stmt.close();
      con.close();
      con.close();
     }

  • 相关阅读:
    计算机科学引论笔记
    Bootstrap实战 瀑布流布局
    前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)
    Promise + Async&Await + Array.reduce + 函数递归 解决网络/接口请求的依次/排队不间断间隔访问
    webfunny前端监控新产品发布:点位系统上线,简单6步操作
    Java 全栈知识体系(2021 PDF 版本)
    Java 面试题及答案整理(2021最新版)持续更新中~~~
    python相关常见安装问题
    获取某一个数的2进制位数以及bitmask
    centos7下利用qemu搭建arm模拟器
  • 原文地址:https://www.cnblogs.com/hoobey/p/5426576.html
Copyright © 2011-2022 走看看