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資料庫準備工作
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("連線資料庫失敗!");
}
}
結束語
以上說明和程式碼參考瞭如下網站,向提供者致敬。
[程式碼和說明的參考網站 ]
相關文章
- java資料庫連線池dbcp的使用Java資料庫
- Java EE在SOA世界中的消亡?(轉)Java
- mac 下使用java EE 建立web專案MacJavaWeb
- JAVA EE(簡述)Java
- JAVA EE 中文APIJavaAPI
- 【J2EE】:Java EE應用的元件Java元件
- DBCP 資料連線池的配置和使用
- Java EE 8 來了Java
- Java EE啟示錄Java
- From Java EE security to AcegiJava
- JAVA SSH與Class 'org.apache.commons.dbcp.BasicDataSource' not foundJavaApache
- java EE 8u1 SDK 包和 java EE 8 API 文件包JavaAPI
- 【J2EE】:Java EE應用的分層模型Java模型
- Java EE/J2EE物件導向程式設計之道Java物件程式設計
- 請教Bang J2EE中的框架如何使用?框架
- DBCP連線池原理分析
- JAVA EE 第一週作業Java
- Java EE 8主要功能Java
- Java EE之旅06 XML基礎JavaXML
- Java EE和RoR的牛人感慨Java
- [摘]Java EE Servlet監聽器JavaServlet
- 從Connection Reset問題淺談DBCP的使用技巧薦
- MySQL-07——JDBC、Properties、DBCP、PreparedstatementMySqlJDBC
- Java EE之旅05 JS基礎(下)JavaJS
- Java EE之旅03 JS基礎(上)JavaJS
- 開發者眼中的Spring與Java EESpringJava
- Java/J2EE中文問題Java
- 求教怎樣使用commons-dbcp元件的連線池問題元件
- 使用MyEclipse開發Java EE應用:EJB專案開發初探(上)EclipseJava
- 使用MyEclipse開發Java EE應用:EJB專案開發初探(下)EclipseJava
- Java EE的斷路器API設計JavaAPI
- Java EE--框架篇(3-1)MybatisJava框架MyBatis
- 甲骨文真的要開放Java EE?Java
- Java EE 基礎知識學習(六)Java
- Jakarta EE:雲原生Java的新平臺Java
- java J2EE學習入門Java
- JAVA\J2EE人員招聘-北京Java
- Java EE開發常用四大框架Java框架