• 创建DBCP数据源


    package com.atguigu.jdbc;

    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;

    import javax.sql.DataSource;

    import org.apache.commons.dbcp.BasicDataSource;
    import org.apache.commons.dbcp.BasicDataSourceFactory;
    import org.junit.Test;

    public class JDBCTest {
    /**
    * 工厂创建模式dbcp
    * 1、加载dbcp的properties配置文件:配置文件中的键需要来自BasicDataSource类的属性
    * 2、调用BasicDataSourceFactory类的createDataSource(properties)方法创建DataSource实例
    * 3、从DataSource实例中获取数据库连接
    * @throws Exception
    */
    @Test
    public void testDBCPWithDataSourceFactory() throws Exception{
    Properties properties=new Properties();
    InputStream inStream=JDBCTest.class.getClassLoader().getResourceAsStream("dbcp.properties");
    properties.load(inStream);
    final DataSource dataSource=BasicDataSourceFactory.createDataSource(properties);
    Connection connection=dataSource.getConnection();
    System.out.println(connection.getClass());
    connection=dataSource.getConnection();
    System.out.println(connection.getClass());
    connection=dataSource.getConnection();
    System.out.println(connection.getClass());
    connection=dataSource.getConnection();
    System.out.println(connection.getClass());
    Connection connection2=dataSource.getConnection();
    System.out.println(">"+connection2.getClass());
    //新建一个线程
    new Thread(){
    public void run(){
    Connection con;
    try {
    con = dataSource.getConnection();
    System.out.println(con.getClass());
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }.start();

    //3秒之后释放连接
    Thread.sleep(3000);
    connection2.close();
    //BasicDataSource basicDataSource=(BasicDataSource)dataSource;
    //System.out.println(basicDataSource.getMaxWait());
    //System.out.println(basicDataSource.getMaxActive());

    }
    /**
    * 使用DBCP数据库连接池
    * 1、加入jar包(2个).commons-dbcp-1.4-bin.zip依赖commons-pool-1.5.5.jar架包
    * 2、创建数据库连接池:
    * 3、从数据源实例指定必须属性
    * 4、从数据源中获取数据库连接
    * @throws SQLException
    */
    @Test
    public void testDBCP() throws SQLException{
    BasicDataSource dataSource=null;
    //创建DBCP数据源实例:
    dataSource=new BasicDataSource();
    //2、为数据源实例指定必须的属性
    dataSource.setUsername("root");
    dataSource.setPassword("root");
    dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/atguigu");
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    //3、指定数据源的一些可选择的属性
    //1)指定数据库连接池中初始化连接数的个数
    dataSource.setInitialSize(10);
    //2)指定最大连接数:同一时刻可以向数据库申请的连接数
    dataSource.setMaxActive(50);
    //3)最小连接数:在数据库连接池中保存的最少的空闲连接的数量,防止调用连接的话可以直接把连接给您
    dataSource.setMinIdle(5);
    //4)等待数据库连接池分配连接的最长毫秒数。下面为5秋超出该时间将抛出异常。
    dataSource.setMaxWait(1000*5);
    //3、从数据源中获取数据库连接
    Connection connection=dataSource.getConnection();
    System.out.println(connection.getClass());
    }

  • 相关阅读:
    BZOJ 3261 最大异或和(可持久化Trie)
    模板 普通平衡树
    HDU4825 Xor Sum(贪心+Trie树)
    二维LIS(CDQ分治)
    IOIOI卡片占卜(Atcoder-IOIOI カード占い)(最短路)
    USACO 2009 Dec cow toll paths 过路费-floyd
    [USACO08JAN]电话线Telephone Lines(分层图)/洛谷P1948
    lightoj 1038 Race to 1 Again 期望
    lightoj 1030 Discovering Gold 期望
    lightoj 1027 A Dangerous Maze 期望
  • 原文地址:https://www.cnblogs.com/xiaona19841010/p/5204472.html
Copyright © 2020-2023  润新知