2025-02-10

對於對性能要求較高的企業級應用來說用JDBC的方式連接數據庫一般滿足不瞭要求,這時就要用到數據庫連接池瞭。
1.數據庫連接池的原理
數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接來避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏。這項技術能明顯提高對數據庫操作的性能。
 
2.配置數據庫連接池的兩種方法
Tomcat服務器配置步驟:
1.把下面這段代碼粘貼D:\apache-tomcat-6.0.14\conf context.xml到文件中的<Context></Context>標簽對之間。(具體路徑以實際為準)
<Resource  
   name="jdbc/test"
   auth="Container"    
   type="javax.sql.DataSource"   
   maxActive="20"   
   maxIdel="10"
   maxWait="1000"   
   username="hr"  
   password="hr"
   driverClassName="oracle.jdbc.driver.OracleDriver"
   url="jdbc:oracle:thin:@localhost:1521:oracle">
   </Resource>
2.把數據庫驅動JAR包復制到D:\apache-tomcat-6.0.14\lib目錄下(具體路徑以實際為準)
3.將原來的DBhelper類中的得到數據庫連接的靜態方法修改成如下的方法
// 建立和數據庫的連接 
    public static Connection getConnection() { 
        DataSource ds; 
        InitialContext cxt; 
        try { 
            cxt = new InitialContext(); 
 
            ds = (DataSource) cxt.lookup("java:/comp/env/jdbc/test"); 
 
            conn = ds.getConnection(); 
 
        } catch (Exception e) { 
 
            e.printStackTrace(); 
        } 
        return conn; 
    } 
在每個工程中配置的步驟:
1.  在WebRoot/META-INF中創建一個context.xml文件,將下面的內容復制到該文件中
<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/ORACLE" auth="Container"
        type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@localhost:1521:oracle" username="hr"
        password="hr" maxActive="100" maxIdle="30" maxWait="10000" />
</Context>
2.把數據庫驅動JAR包導入到該工程中
3.將原來的DBhelper類中的得到數據庫連接的靜態方法修改成如下的方法
// 建立和數據庫的連接 
    public static Connection getConnection() { 
        try { 
            InitialContext initContext = new InitialContext(); 
            Context context = (Context) initContext.lookup("java:comp/env"); 
            DataSource ds = (DataSource) context.lookup("jdbc/ORACLE"); 
 
            conn = ds.getConnection(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
 
        return conn; 
    } 
 
作者“極致書生”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *