JSP數據庫連接池的必要性_MySQL
來源:懂視網
責編:小采
時間:2020-11-09 17:07:27
JSP數據庫連接池的必要性_MySQL
JSP數據庫連接池的必要性_MySQL:最近我作了數據庫JSP的頻繁連接,在此給出數據庫連接池的必要性,對于JSP來說一個很好的J2EE服務器是很必要的,JBOOS,WebLogic都是很好的解決方案。 一般情況下,在使用開發基于數據庫的WEB程序時,傳統的模式基本是按以下步驟: 1. 在主程序(如Servl
導讀JSP數據庫連接池的必要性_MySQL:最近我作了數據庫JSP的頻繁連接,在此給出數據庫連接池的必要性,對于JSP來說一個很好的J2EE服務器是很必要的,JBOOS,WebLogic都是很好的解決方案。 一般情況下,在使用開發基于數據庫的WEB程序時,傳統的模式基本是按以下步驟: 1. 在主程序(如Servl

最近我作了數據庫JSP的頻繁連接,在此給出數據庫連接池的必要性,對于JSP來說一個很好的J2EE服務器是很必要的,JBOOS,WebLogic都是很好的解決方案。
一般情況下,在使用開發基于數據庫的WEB程序時,傳統的模式基本是按以下步驟:
1. 在主程序(如Servlet、Beans)中建立數據庫連接。
2. 進行SQL操作,取出數據。
3. 斷開數據庫連接。
使用這種模式開發,存在很多問題。首先,我們要為每一次WEB請求(例如察看某一篇文章的內容)建立一次數據庫連接,對于一次或幾次操作來講,或許你覺察不到系統的開銷,但是,對于WEB程序來講,即使在某一較短的時間段內,其操作請求數也遠遠不是一兩次,而是數十上百次(想想全世界的網友都有可能在您的網頁上查找資料),在這種情況下,系統開銷是相當大的。事實上,在一個基于數據庫的WEB系統中,建立數據庫連接的操作將是系統中代價最大的操作之一。很多時候,可能您的網站速度瓶頸就在于此。
其次,使用傳統的模式,你必須去管理每一個連接,確保他們能被正確關閉,如果出現程序異常而導致某些連接未能關閉,將導致數據庫系統中的內存泄露,最終我們將不得不重啟數據庫。
針對以上問題,我們首先想到可以采用一個全局的Connection對象,創建后就不關閉,以后程序一直使用它,這樣就不存在每次創建、關閉連接的問題了。但是,同一個連接使用次數過多,將會導致連接的不穩定,進而會導致WEB SERVER的頻頻重啟。故而,這種方法也不可取。實際上,我們可以使用連接池技術來解決上述問題。首先,介紹一下連接池技術的基本原理。顧名思義,連接池最基本的思想就是預先建立一些連接放置于內存對象中以備使用:

class ConnectionObject{
public java.sql.Connection con; public boolean inUse; //是否被使用標志
public long lastAccess; //最近一次開始使用時間
public int useCount; //被使用次數
}
加入了ConnectionObject對象后,在ConnectionPool中操作的應該只是ConnectionObject,而其他進程需要的只是ConnectionObject的con屬性,因此我們再加入一個類,作為其他進程獲得與返回連接的接口: CLASS Conn{
GetConnection(); //從連接池中取出一個有效連接
CloseConnection(); //返回連接,此時并沒有關閉連接,只是放回了連接池
DestroyPool(); //銷毀連接池
}
最后我們的整個系統總的架構如下:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
JSP數據庫連接池的必要性_MySQL
JSP數據庫連接池的必要性_MySQL:最近我作了數據庫JSP的頻繁連接,在此給出數據庫連接池的必要性,對于JSP來說一個很好的J2EE服務器是很必要的,JBOOS,WebLogic都是很好的解決方案。 一般情況下,在使用開發基于數據庫的WEB程序時,傳統的模式基本是按以下步驟: 1. 在主程序(如Servl