歡迎使用CSDN-markdown編輯器,csdn-markdown

來源:互聯網
上載者:User

歡迎使用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("串連資料庫失敗!");    }}
結束語

以上說明和代碼參考了如下網站,向提供者致敬。
[代碼和說明的參考網站 ]

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.