java ee中使用dbcp

java ee中使用dbcp

使用java进行网站开发时,访问数据库数据必不可少,而dbcp在管理数据库连接方面有着独特的优势。


dbcp

DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。 —— [ 百度百科 ]

简单说就是一个apache已经编好的数据库连接池,直接拿来用就可以。比自己写的访问数据的程序要快且高效。

使用方法

  • 环境说明
    请注意:本人使用mysql数据库

  • 准备工作

    1. mysql-connector-java-5.1.26-bin.jar,这是mysql的jdbc的驱动程序,下载后放到WebContent/WEB-INF/lib文件下

    2. commons-dbcp-1.4.jar,commons-pool-1.5.6.jar,这两个jar是dbcp所必须的两个jar包,下载后引入到工程中(也就是以built path的方式引入到工程中)

    3. commons-logging-1.1.3.jar,这个一个日志jar包,我想说的是,如果是开发项目的话,尽量保持使用日志的习惯吧,做好日志对项目开发,项目维护都有很大的帮助。同样以built path的形式引入到工程中

代码块

如果准备工作已经完成的话,下面开始上代码了

DBManager类

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;


import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class DBManager {
    private static final Log log = LogFactory.getLog(DBManager.class); 
    private static final String configFile = "dbcp.properties";

    private static DataSource dataSource;
    static{
        Properties dbProperties = new Properties();
        try{
            dbProperties.load(DBManager.class.getClassLoader().getResourceAsStream(configFile));
            dataSource = BasicDataSourceFactory.createDataSource(dbProperties);
            Connection conn = getConn();
            DatabaseMetaData mdm = conn.getMetaData();
            log.info("Connected to " + mdm.getDatabaseProductName() + " "
                    + mdm.getDatabaseProductVersion());
            if(conn != null){
                conn.close();
            }
        } catch(Exception e){
            log.error("初始化连接池失败:" + e);
            e.printStackTrace();
        }

    }
    private DBManager(){}

    public static final Connection getConn(){
        Connection conn = null;
        try{
            conn = dataSource.getConnection();
        }catch(SQLException e){
            log.error("获取数据库连接失败:" + e);
        }
        return conn;
    }

    public static void closeConn(Connection conn){
        try{
            if(conn != null && !conn.isClosed()){
                conn.setAutoCommit(true);
                conn.close();
            }
        }catch(SQLException e){
            log.error("关闭数据库连接失败:" + e);
        }
    }
}

其中,configFile = “dbcp.properties” 实际指的是一个配置文件,具体内容如下:

dbcp.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名
username=root        
password=1234556
maxActive=30
maxIdle=10
maxWait=1000
removeAbandoned=true
removeAbandonedTimeout=180

各参数的意义,请自行搜索,在此不赘述。
注意:dbcp.properties文件是放在src文件下的

测试类 TomcatDbTest类

package DBbase;

import java.sql.Connection;
import java.sql.SQLException;

public class TomcatDbTest {

    public static void main(String[] args) {    
        Connection conn = DBManager.getConn();
        if(conn != null){
            System.out.println("成功建立连接");
            try {
                conn.close();
            } catch (SQLException e) {
                System.out.println("未成功关闭连接");
                e.printStackTrace();
            }
            return;
        }
        System.out.println("连接数据库失败!");

    }
}

结束语

以上说明和代码参考了如下网站,向提供者致敬。
[代码和说明的参考网站 ]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值