[來源:《中國經濟社會論壇》(學術版)2019年6月刊;作者:王春明(黑龍江工商學院) 肖鵬]
摘要:本文探討了使用JNDI獲取數據庫連接池的技術。通過具體代碼完成了使用JNDI獲取數據庫連接池的操作。
關鍵詞:JDBC,數據庫連接池,JNDI
一、JDBC
JDBC連接數據庫的方式是一種比較傳統的連接方式,這種連接方式在執行過程中,需要經常與數據庫建立連接,并且在使用后再關閉連接,釋放資源。可想而知,頻繁的連接和釋放操作必然要耗費很多系統資源,而且容易引發異常,因而需要有一種新的技術來彌補它的不足,這就是連接池(Connection Pool)技術。
二、數據庫連接池
數據庫連接是非常占用系統資源的,這一點在多用戶訪問的應用程序中體現得尤為突出。對數據庫連接的管理能顯著影響到整個應用程序的伸縮性健壯性。數據庫連接池正是針對這個問題提出來的。
數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而不再是重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接,以避免由于沒有釋放數據庫連接而引起的數據庫連接遺漏。這項技術能明顯地提高對數據庫操作的性能。
數據庫連接池在初始化時將創建一定數量的數據庫連接并放在連接池中,這些數據庫連接的數量是由最小數據庫連接數來設定的。無論這些數據庫連接是否被使用,連接池都將確保至少擁有這么多的連接數量。連接池的最大數據庫連接數量限定了這個連接池能占有的最大連接數,當應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入等待隊列中。
數據庫連接池提前準備好連接對象,提高了訪問效率,控制連接數量,防止同時過多用戶訪問導致性能大大降低,數據庫崩潰等問題。
三、數據庫連接池管理連接的方式
對于連接的管理可使用空閑池,即把已經創建但尚末分配出去的連接存放到一個空閑池中;每當用戶請求一個連接時,系統首先檢查空閑池內有沒有空閑連接。如果有就分配一個連接給用戶服務;如果沒有則檢查當前連接池是否達到連接池所允許的最大連接數。如果沒有達到,就新建立一個連接。如果已經達到,就等待一定的時間。如果在等待的時間內有連接被釋放出來,就可以把這個連接分配給等待的用戶。如果等待時間超過預定時間,則返回空值(null)。系統對已經分配出去正在使用的連接只做計數,當使用完后再返還給空閑池。
四、在Tomcat上配置數據源與連接池
數據源在JDBC擴展包中定義了javax.sql.DataSourdce接口,它負責建立與數據庫的連接,在應用程序中訪問數據庫時不必編寫連接數據庫的代碼,可以直接從數據源獲得數據庫連接。DataSource對象是由Web容器(Tomcat)提供的,因此不能在程序中采用創建一個實例的方式生成DataSource對象,本論文采用JNDI來實現。JNDI的全稱是Java Naming and Directory Interface(JAVA命名與目錄接口),是一種將對象和名字綁定的技術。使用JNDI,應用程序可以通過資源名字來獲得相應的對象、服務或目錄。具體程序略。
在Tomcat中配置好數據源后,Tomcat會將這個數據源綁定到JNDI名稱空間,然后通過Context的lookup()方法來查找到這個數據源,找到數據源之后,使用getConnection()方法創建一個數據庫連接,之后就可以像使用JDBC直接連接數據庫那樣操作數據庫了。在測試頁面中建立500個連接并且關閉,然后計算耗時的時間。從運行結果分析,使用數據庫連接池的方式可以提高訪問數據庫的效率。需要注意的是,數據庫訪問完畢后要注意釋放資源,這里的關閉是將數據庫連接返回連接池。(作者簡介:王春明,女, 工學碩士,副教授,黑龍江工商學院,研究方向軟件工程)
參考文獻:
[1]商杰,朱戰立.數據庫連接池技術研究與應用[ J ] . 現代 電子技術,2007 (5 ): 95 -97.
[2]劉歡杰,魏靜敏. 關于JAVA的數據庫連接池的探討 信息系統工程2012(5) 44-44.
[3]鮑宏圖,劉實,張德修,等. JSP軟件開發中數據庫連接 池技術的探討與應用[ J ] . 內蒙古大學學報(自然科學 版),2007, 38 (3) : 337 -341.
轉自:大眾新聞網
【版權及免責聲明】凡本網所屬版權作品,轉載時須獲得授權并注明來源“中國產業經濟信息網”,違者本網將保留追究其相關法律責任的權力。凡轉載文章及企業宣傳資訊,僅代表作者個人觀點,不代表本網觀點和立場。版權事宜請聯系:010-65367254。
延伸閱讀

版權所有:中國產業經濟信息網京ICP備11041399號-2京公網安備11010502035964