java ee中使用dbcp

来源:互联网 发布:cms上传文件 编辑:程序博客网 时间:2024/05/16 10:06

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.Driverurl=jdbc:mysql://localhost:3306/数据库名username=root        password=1234556maxActive=30maxIdle=10maxWait=1000removeAbandoned=trueremoveAbandonedTimeout=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("连接数据库失败!");    }}

结束语

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

0 0
原创粉丝点击