美文网首页
黑猴子的家:JDBC -> dbcp 数据库连接池

黑猴子的家:JDBC -> dbcp 数据库连接池

作者: 黑猴子的家 | 来源:发表于2019-03-02 05:58 被阅读3次
    1、dbcp jar 包
    commons-dbcp-1.4.jar
    commons-pool-1.5.5.jar
    
    2、方式一
    package com.yinggu.demo8;
    import java.sql.Connection;
    import java.util.Properties;
    import org.apache.commons.dbcp.BasicDataSource;
    import org.apache.commons.dbcp.BasicDataSourceFactory;
    import org.junit.Test;
    
     * @author:黑猴子的家
     * @博客 :https://www.jianshu.com/u/37fd8e2dff4c
     * 
     *     数据库连接池的引入: 传统模式的连接存在以下不足: 
     *     1.每次连接耗时较长,效率低 
     *     2.每次使用完需要关闭连接,数据库连接对象没有得到重复利用
     *     3.每次使用用完如果不关闭连接,则容易导致内存泄漏 数据库
     * 
     *     连接池的好处: 
     *     1、采用缓冲池的思想,效率提高 
     *     2、连接得到重复利用 
     *     3、统一的资源管理和分配
    
    public class TestdbcpDataSource {
          // 使用dpcp方式一
          @Test
          public void testDBCP_1() throws Exception {
                // 1.创建连接池对象
                BasicDataSource bds = new BasicDataSource();
                // 2.设置连接参数
                bds.setDriverClassName("com.mysql.jdbc.Driver");
                bds.setUrl("jdbc:mysql://localhost:3306/test");
                bds.setUsername("root");
                bds.setPassword("root");
                // 3.设置配置参数
                bds.setInitialSize(5);// 初始连接数
                bds.setMinIdle(3);// 最小空闲连接数
                bds.setMaxIdle(10);// 最大空闲连接数
                // 4.获取连接
                Connection connection = bds.getConnection();
                System.out.println(connection);
                // 5.关闭连接,仅仅放回连接池中,并没有断开和数据库的连接
                connection.close();
          }
    }
    
    3、方式二

    1)dbcp.properties

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/test
    username=root
    password=root
    initialSize=5
    maxActive=10
    

    2)code

    // 使用dpcp方式二
    @Test  
    public void testDBCP_2() throws Exception {
        Properties pro = new Properties();
        pro.load(
                 this.getClass()
                .getClassLoader()
                .getResourceAsStream("dbcp.properties"));
        // 1.创建连接池对象
        BasicDataSource bds = 
                (BasicDataSource)BasicDataSourceFactory.createDataSource(pro);
        // 2.获取连接
        Connection connection = bds.getConnection();
        System.out.println(connection);
        // 3.关闭连接
        connection.close();
    }
    

    相关文章

      网友评论

          本文标题:黑猴子的家:JDBC -> dbcp 数据库连接池

          本文链接:https://www.haomeiwen.com/subject/ngdduqtx.html