歡迎使用CSDN-markdown編輯器,csdn-markdown
java ee中使用dbcp
使用java進行網站開發時,訪問資料庫資料必不可少,而dbcp在管理資料庫串連方面有著獨特的優勢。
dbcp
DBCP(DataBase connection pool),資料庫連接池。是 apache 上的一個 java 串連池項目,也是 tomcat 使用的串連池組件。單獨使用dbcp需要2個包:commons-dbcp.jar,commons-pool.jar由於建立資料庫連接是一個非常耗時耗資源的行為,所以通過串連池預先同資料庫建立一些串連,放在記憶體中,應用程式需要建立資料庫連接時直接到串連池中申請一個就行,用完後再放回去。 —— [ 百度百科 ]
簡單說就是一個apache已經編好的資料庫連接池,直接拿來用就可以。比自己寫的訪問資料的程式要快且高效。
使用方法
環境說明
請注意:本人使用mysql資料庫
準備工作
代碼塊
如果準備工作已經完成的話,下面開始上代碼了
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("串連資料庫失敗!"); }}
結束語
以上說明和代碼參考了如下網站,向提供者致敬。
[代碼和說明的參考網站 ]
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。