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数据库准备工作
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.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("连接数据库失败!"); }}
结束语
以上说明和代码参考了如下网站,向提供者致敬。
[代码和说明的参考网站 ]
- java ee中使用dbcp
- JAVA中使用DBCP做数据库连接池
- JAVA中使用DBCP做数据库连接池
- Java EE开发第六章:JDBC开发之DBCP连接池的使用
- Java EE中Srevlet的使用
- 在 Java EE应用程序中使用JPQL
- Java EE中Listener
- Java EE中事务处理
- Java使用DBCP连接池
- 在 Java EE 组件中使用 Camel Routes
- Java EE中filter(过滤器)的使用
- Java EE中使用session实现购物车功能
- 在eclipse中使用tomcat开发Java EE项目(1)
- Java EE 中编码问题
- Java EE中编码方式
- java EE中JPA介绍
- JAVA EE环境使用JMX
- 在Tomcat中使用DBCP数据源
- php设计模式入门-单例模式
- Sort Colors
- EF学习和使用(二)ModelFirst
- Leetcode刷题总结
- 众数问题
- java ee中使用dbcp
- STP/RSTP/MSTP的区别以及各自的特点
- java语言基础总结
- Children's Day(4706)
- redis命令,学习笔记
- 大牛很通俗地介绍《信号与系统》
- J114 7/29
- Android笔记之Service
- Python: [Errno 32] Broken pipe异常分析