使用java进行网站开发时,访问数据库数据必不可少,而dbcp在管理数据库连接方面有着独特的优势。
DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。 —— [ 百度百科 ]
简单说就是一个apache已经编好的数据库连接池,直接拿来用就可以。比自己写的访问数据的程序要快且高效。
环境说明
请注意:本人使用mysql数据库
准备工作
mysql-connector-java-5.1.26-bin.jar,这是mysql的jdbc的驱动程序,下载后放到WebContent/WEB-INF/lib文件下
commons-dbcp-1.4.jar,commons-pool-1.5.6.jar,这两个jar是dbcp所必须的两个jar包,下载后引入到工程中(也就是以built path的方式引入到工程中)
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("连接数据库失败!");
}
}
以上说明和代码参考了如下网站,向提供者致敬。
[代码和说明的参考网站 ]
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/shijunjoy/article/details/47134355