zoukankan      html  css  js  c++  java
  • 数据库连接池(DBCP:为数据统一建立一个缓冲池,现在企业开发使用)

    数据库连接池:(里面放了许多连接数据的链接,负责分配,管理,释放数据库连接,可重复使用连接,而不新建  )为数据统一连接建立一个缓冲池,放好了一定数据库连接,使用时在缓冲池里面拿,用完之后再还给缓冲池,再使用时,不需要新建; 

    三个架包

    mysql-connector-java-jar

    commons-dbcp-1.4jar

    commons-pool-1.5.5jar 导进去

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

    基本方法:


    /*
    * DBCP数据源:需要使用架包dbcp.jar
    *1.加入jar包,依赖于Commons Pool这个架包
    *2.创建数据库连接池
    *3.设置了常用的属性
    *4.从数据源中获取数据库的连接
    * */

    //第一种方法:

    public void testDBCP() throws SQLException{
    BasicDataSource dataSource=null;


    //1. 创建DBCP数据源实例
    dataSource=new BasicDataSource();


    //2.为数据源实例指定必须的属性
    //driver=com.mysql.jdbc.Driver
    //jdbcUrl=jdbc:mysql://localhost:3306/lxn

    dataSource.setUsername("root");
    dataSource.setPassword("lxn123");
    dataSource.setUrl("jdbc:mysql://localhost:3306/lxn");
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    System.out.println(dataSource.getUsername());

    //指定数据源的一些可选的属性


    dataSource.setInitialSize(10);//指定数据库连接池中初始化连接的个数

    dataSource.setMaxActive(50);//指定最大的连接数:同一时刻可以向数据库同时申请的连接数

    dataSource.setMinIdle(10);//指定最小连接数:在数据库连接池空闲状态下,在连接池中最少连接数

    dataSource.setMaxWait(1000*5);//等待数据库连接池分配连接最长时间,单位为毫秒,超出时间,抛出异常


    //3.从数据源中获取连接
    Connection connection=dataSource.getConnection();
    System.out.println(connection);
    }

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

    第二种方法获取连接:

    在src目录下建立:dbcp文件

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/lxn
    username=root
    password=lxn123

    initialSize=10
    maxActive=50
    minIdle=5
    maxWait=5000

    方法:

    /*
    * 1.加载dbcp.properties配置文件,配置文件中的建需要来自BasicDataSource的属性
    * 2.调用BasicDataSourceFactory的createDataSource方法创建DataSource实例
    * 3.从DataSource实例中获取数据库的连接
    *
    * */

    public Connection testDBCPWithDataSourceFactlory() throws Exception{

    Properties properties=new Properties();
    InputStream in=
    TestJDBC.class.getClassLoader().getResourceAsStream("dbcp.properties");
    properties.load(in);

    DataSource dataSource=BasicDataSourceFactory.createDataSource(properties);
    Connection connection=dataSource.getConnection();
    System.out.println(connection);

    BasicDataSource basicDataSource=(BasicDataSource)dataSource;

    System.out.println(basicDataSource.getMaxWait());

    reture connection;
    }

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

    import java.io.InputStream;
    import java.sql.Connection;
    import java.util.Properties;

    import javax.sql.DataSource;

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

    import导的包,导错会出现异常

  • 相关阅读:
    生产者消费者代码
    C++内存深入理解
    树、森林与二叉树的相互转换
    待卿长发及腰,我必凯旋回朝
    同一进程下的线程可以共享
    操作系统知识
    进程间通信方式
    从一个微型例子看“C/C++的内存分配机制”和“数组变量名与指针变量名”(转)

    AVL Tree 操作
  • 原文地址:https://www.cnblogs.com/lxnlxn/p/5774947.html
Copyright © 2011-2022 走看看