• dbcp数据源连接池


    一.数据源连接池

      我们之前利用jdbc连接数据库,每次都要创建连接对象,销毁连接对象,如果并发访问量比较大,这样肯定比较辣
    浪费数据库的效率,我们可以像之前mybatis中缓存查询到的数据一样,可以把连接对象也建立一个缓存,然后以
    后如果要获取连接就不从数据库中创建了,直接从缓存中去取,这样就节约了连接的创建和销毁的时间,能够提高
    数据库的运行效率。这个“缓存”就叫数据源连接池,数据源连接池一般都是使用第三方的插件来实现,市场上常见的数据源连接池插件有dbcp,c3p0, druid (德鲁伊)连接池等等。但是一般连接池的用法都是相似的,基本上学会一个就会其他的了。
    二.使用dbcp连接池获取数据库的连接对象
    第一步:创建项目,引入jar包
    第二步:创建测试类
    /**
    * 在main方法中使用dbcp获取数据库连接对象
    */
    public class Test01 {
    public static void main(String[] args) throws SQLException {
    //创建连接池对象
    BasicDataSource dataSource = new BasicDataSource();
    //设置数据库的驱动(必选参数)
    dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
    //设置数据库连接url(必选参数)
    dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
    //设置数据库连接的用户名(必选参数)
    dataSource.setUsername("scott");
    //设置数据库连接的密码(必选参数)
    dataSource.setPassword("tiger");
    //设置数据源连接池初始化连接数量
    dataSource.setInitialSize(5);
    //设置数据源连接池允许的最大连接数量
    dataSource.setMaxTotal(8);
    //设置数据源连接池最大空闲连接数量
    dataSource.setMaxIdle(6);
    //设置数据源连接池最小空闲连接数量
    dataSource.setMinIdle(3);
    //当数据源连接池连接已被用尽的时候,下一个要链接用户的最大等待时间 单位是毫秒 默认值是-1,是永远等待
    dataSource.setMaxWaitMillis(5000L);
    //获取数据库连接
    Connection conn1 = dataSource.getConnection();
    System.out.println(conn1);
    System.out.println("连接池已经激活的连接数量:"+dataSource.getNumActive());
    System.out.println("连接池空闲连接数量:"+dataSource.getNumIdle());
    }
    }
    三.在spring工厂中创建数据源连接池
    第一步:创建项目,引入jar包
    第二步:创建spring的主配置文件
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--创建dbcp数据源连接池对象-->
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
    <!--驱动名-->
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
    <!--url-->
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
    <!--用户名-->
    <property name="username" value="scott"></property>
    <!--密码-->
    <property name="password" value="tiger"></property>
    <!--初始化连接数量-->
    <property name="initialSize" value="5"></property>
    <!--最大连接数量-->
    <property name="maxTotal" value="8"></property>
    <!--最大空闲连接数量-->
    <property name="maxIdle" value="6"></property>
    <!--最小空闲连接数量-->
    <property name="minIdle" value="3"></property>
    <!--连接等待的最大时间 -->
    <property name="maxWaitMillis" value="5000"></property>
    </bean>
    </beans>
    第三步:测试
    public class Test01 {
    public static void main(String[] args)throws Exception {
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    BasicDataSource dataSource = (BasicDataSource)context.getBean("dataSource");
    Connection con1 = dataSource.getConnection();
    Connection con2 = dataSource.getConnection();
    System.out.println("激活的连接数量:"+dataSource.getNumActive());
    System.out.println("空闲连接数量:"+dataSource.getNumIdle());
    }
    }
  • 相关阅读:
    Python之paramiko基础
    mysql-创建库之问题
    Jmeter--HTTP Cookie管理器
    Mysql-简单安装
    [JS]jQuery,javascript获得网页的高度和宽度
    去除表单自动填充时,-webkit浏览器默认给文本框加的黄色背景
    读罢泪两行,人生成长必须面对的10个残酷事实
    前端开发面试题JS2
    前端开发面试题JS
    是内耗让你活得特别累
  • 原文地址:https://www.cnblogs.com/duguangming/p/10913986.html
Copyright © 2020-2023  润新知