zoukankan      html  css  js  c++  java
  • DBCP数据库连接池的一些记录

    DBCP(DataBase connection pool)数据库连接池。这个技术是为了加快数据库的响应而创造的,数据库的连接时一个很费时耗资源的行为。最近,开发都是电商的web网站,大数据量的数据库,反应确实有点慢。连接池这个技术很早就接触过,但是没有一个深入的研究。说白了,连接池就是在内存中划块地方,专门用来存放预先创建好的数据库连接。这样接可以节省每次开启数据连接那一套流程的消耗。

    DBCP单独使用的时候,必须要导入三个jar包:

    commons-dbcp.jar
    commons-pool.jar
    commons-collections.jar(dbcp1.2时,必须)
     
    DBCP的实现类:
     1 import java.sql.Connection;
     2 import java.sql.SQLException;
     3 import java.util.Properties;
     4 
     5 import org.apache.commons.dbcp.BasicDataSource;
     6 import org.apache.commons.dbcp.BasicDataSourceFactory;
     7 
     8 
     9 public class ConnectionSource {
    10     private static BasicDataSource dataSource = null;
    11     
    12     public static void init(){
    13         //判断数据库连接是否已经分配,如果已分配,则关闭
    14         if(dataSource != null){
    15             try {
    16                 dataSource.close();
    17             } catch (SQLException e) {
    18                 // TODO Auto-generated catch block
    19                 e.printStackTrace();
    20             }
    21             dataSource = null;
    22         }
    23         
    24         try {
    25             //配置,使用Properties,只接受这一种方式
    26             Properties p = new Properties();
    27             p.setProperty("driverClassName","com.mysql.jdbc.Driver");
    28             p.setProperty("url", "jdbc:mysql://localhost:3306/sampledb");
    29             p.setProperty("username", "root");
    30             p.setProperty("password", "yflllb");
    31             
    32             dataSource= (BasicDataSource) BasicDataSourceFactory.createDataSource(p);
    33         } catch (Exception e) {
    34             // TODO: handle exception
    35         }
    36     }
    37     
    38     public static synchronized Connection getConnection() throws SQLException {
    39         if(dataSource == null){
    40             init();
    41         }
    42         Connection connection = null;
    43         if(dataSource != null){
    44             connection = dataSource.getConnection();
    45         }
    46         
    47         return connection;
    48     }
    49 }

    调用这个类的getConnection()方法,得到连接。

    写java的web项目,常用到spring框架。spring3.0之后版本,按模块集成。其中就集成了DBCP,可以使用spring的配置文件来配置DBCP:

    1 <!-- 定义一个DBCP实现的数据源 -->
    2 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    3     destroy-method="close"
    4     p:driverClassName="com.mysql.jdbc.Driver"
    5     p:url="jdbc:mysql://localhost:3306/sampledb"
    6     p:username="root"
    7     p:password="yflllb"
    8     />
  • 相关阅读:
    Erlang学习记录:转义
    Erlang学习记录:运算符
    Erlang学习记录:语法和特性
    Erlang学习记录:相关工具和文档
    IDEA快捷键(收集自网络后整理)
    Redis学习
    SQL_server_2008_r2和visual studio 2010旗舰版的安装(2013-01-16-bd 写的日志迁移
    oracle 11gR2 for win7旗舰版64安装以及连接plsql和NaviCat(win64_11gR2_database) (2012-12-31-bd 写的日志迁移
    win7在某个盘或文件夹中出现右键只能新建文件夹的情况 (2012-12-28-bd 写的日志迁移
    宏基笔记本升级bios(2012-12-28-bd 写的日志迁移
  • 原文地址:https://www.cnblogs.com/chengxuyuanxiaoye/p/3688973.html
Copyright © 2011-2022 走看看