zoukankan      html  css  js  c++  java
  • 数据库连接池

    1.为什么要用连接池?
    在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。数据库连接池技术是解决这个问题最常用的方法,在许多应用程序服务器(例如Weblogic,WebSphere,JBoss,Tomcat)中,基本都提供了这项技术,无需自己编程。


    2.常见连接池
    dbcp(不建议使用),c3p0以及阿里巴巴的druid


    3.配置(下面以c3p0为例)
    3.1 首先导入jar包
    c3p0-0.9.1.2.jar
    3.2 在src创建该配置文件 (如果要自动加载的话 名字必须是这个,并且是在src路径下,并且第一行前面不能有空行)
    c3p0-config.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
    <default-config>
    <property name="user">root</property>
    <property name="password">abc</property>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://estoresystem</property>
    </default-config> 
    </c3p0-config>


    4.连接池的部分核心参数
    initialPoolSize: 连接池初始化时创建的连接数,default : 3
    minPoolSize: 连接池保持的最小连接数,default : 3
    maxPoolSize: 连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大,default : 15
    acquireIncrement: 连接池在无空闲连接可用时一次性创建的新数据库连接数,default : 3
    maxIdleTime: 连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接。如果为0,则永远不会断开连接,默认为0;
    maxConnectionAge: 配置连接的生存时间,超过这个时间的连接将由连接池自动断开丢弃掉。


    5.使用方法
    在我们的数据库工具类中

    private static ComboPooledDataSource datasource = new ComboPooledDataSource();

    这样子就能获得一个连接池对象 ,在一个项目中有一个连接池就够了,因为一个连接池里面可以放多个连接。
    注意:这样子写会默认去加载src路径下的c3p0-config.xml配置文件

  • 相关阅读:
    福大软工1816 · 第五次作业
    团队编程
    结队第一次作业
    词频统计 ——Java
    Alpha 冲刺 (3/10)
    Alpha 冲刺 (2/10)
    Alpha 冲刺 (1/10)
    2018软工实践第七次作业——需求报告分析
    福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)
    2018软工实践第六次作业——团队选题报告
  • 原文地址:https://www.cnblogs.com/ericz2j/p/11109218.html
Copyright © 2011-2022 走看看