欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Java數據庫連接

企業(yè)Bean持久性機制決定了你是否要為處理數據庫連接編寫(xiě)代碼。不是采用CMP的企業(yè)Bean都必須自己編寫(xiě)連接處理的代碼,包括BMP實(shí)體Bean和會(huì )話(huà)Bean。對于CMP實(shí)體Bean,deploytool工具會(huì )自動(dòng)產(chǎn)生連接處理的代碼。

獲得連接

如何獲得連接

以SaingsAccountBean為例:

1. 確定數據庫名:

private String dbName =

"java:comp/env/jdbc/SavingsAccountDB";

2. 獲得數據庫連接工廠(chǎng):

I(yíng)nitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup(dbName);

3. 從工廠(chǎng)獲得連接:

Connection con =  ds.getConnection();

獲得連接的時(shí)機

編寫(xiě)企業(yè)Bean時(shí),你需要決定連接保持的時(shí)間。通常有兩種選擇:持續連接,在企業(yè)Bean的生命周期中一直保持連接或者在每一個(gè)數據庫操作期間保持連接。臨時(shí)連接,僅在每一個(gè)數據操作期間保持連接。這兩種連接方式將決定數據操作方法的實(shí)現。

持續連接

你可以設計一個(gè)企業(yè)Bean,在它的整個(gè)生命周期中保持數據庫連接。因為它連接數據庫和斷開(kāi)數據庫連接都只進(jìn)行一次,所以它的方法得到連接都很簡(jiǎn)單。但是它有一個(gè)缺點(diǎn):其他組件在該Bean的生命周期內就不能使用該連接(它獨占了一個(gè)連接資源)。會(huì )話(huà)Bean和實(shí)體Bean在不同的方法中獲得持續連接。

會(huì )話(huà)Bean

EJB容器在會(huì )話(huà)Bean生命周期開(kāi)始的時(shí)候調用ejbCreate方法在結束的時(shí)候調用ejbRemove方法。所以會(huì )話(huà)Bean的持續連接在ejbCreate方法中獲得,并在ejbRemove方法中斷開(kāi)。如果是有狀態(tài)會(huì )話(huà)Bean你也必須在ejbActive中取得連接并在ejbPassivate中斷開(kāi)連接。有狀態(tài)會(huì )話(huà)Bean之所以需要這些額外的連接和斷開(kāi)動(dòng)作,是因為EJB容器在它的生命周期內可能會(huì )鈍化它。在鈍化期間,該有狀態(tài)會(huì )話(huà)Bean被保存在二級存儲器(硬盤(pán))中,但是數據庫連接不能保存在這里。而無(wú)狀態(tài)會(huì )話(huà)Bean不會(huì )被鈍化,所以它不需要在ejbActive和ejbPassivate方法中獲得和斷開(kāi)數據庫連接。關(guān)于激活和鈍化的更多信息請參考有狀態(tài)會(huì )話(huà)Bean的生命周期(第3章第8節)。在j2eetutorial/examples/ejb/teller目錄下的TellerBean.java是使用持續連接的有狀態(tài)會(huì )話(huà)Bean的例子。

BMP實(shí)體Bean

當實(shí)例化一個(gè)實(shí)體Bean并把它放入Bean池中的時(shí)候EJB容器調用setEntityContext方法。相對地,在當實(shí)體Bean從Bean池中被移除并成為垃圾收集器的目標時(shí)EJB容器調用unsetEntityContext方法。所以BMP實(shí)體Bean的持續連接在setEntityContext方法中獲得并在unsetEntityContext方法中斷開(kāi)。實(shí)體Bean的生命周期參考圖3-5(第3章第8節)。在j2eetutorial/examples/ejb/savingsaccount目錄下的SavingsAccountBean.java是使用持續連接的實(shí)體Bean的例子。

臨時(shí)連接

只在使用時(shí)暫時(shí)占有連接可以使許多組件共用同一個(gè)資源連接。因為EJB容器管理一個(gè)數據庫連接池,企業(yè)Bean可以快速地獲得和釋放連接。例如,一個(gè)商業(yè)方法可以得到連接,插入一行數據,然后釋放連接。在會(huì )話(huà)Bean中,商業(yè)方法連接數據庫會(huì )啟動(dòng)一個(gè)事務(wù)以保證數據完整性。

用deploytool指定數據庫用戶(hù)名和密碼

下面的方法不適合CMP實(shí)體Bean,關(guān)于CMP實(shí)體Bean的數據庫連接方法請參考第6章CMP例子中的相關(guān)內容。這種Claudscape數據庫連接不需要指定用戶(hù)名和密碼,因為權限驗證已被分開(kāi)成為另一項服務(wù)。更多信息請參考第15章。

然而,很多其它類(lèi)型的數據庫系統卻需要提供用戶(hù)名和密碼來(lái)獲得連接。對于這些數據庫系統如果調用無(wú)參數的getConnection方法,那么必須在deploytool中指定數據庫的用戶(hù)名和密碼:

1.在樹(shù)視圖中選中企業(yè)Bean節點(diǎn)

2.選擇Resource Refs頁(yè)簽

3.在Resource Factories Referenced in Code表格中選擇對應的行,然后在頁(yè)簽下面的輸入框中分別輸入數據庫的用戶(hù)名和密碼。

如果你想在程序中指定用戶(hù)名和密碼,就不需要deploytool來(lái)指定了,只是在或的數據庫連接的時(shí)候要用它們作為getConnection方法的參數:

con = dataSource.getConnection(dbUser, dbPassword);

連接池

EJB容器管理數據庫連接池,連接池對企業(yè)Bean是透明的。當企業(yè)Bean請求一個(gè)連     接時(shí),容器從連接池中取出一個(gè)連接給企業(yè)Bean。因為連接早就建立好了,所以企業(yè)Bean可以更快的得到一個(gè)連接。因為企業(yè)Bean這樣可以快速得到連接,所以可以在每次數據庫操作結束后就馬上釋放連接。企業(yè)Bean占用一個(gè)連接只是很短的時(shí)間,因而同樣的連接可以被很多的企業(yè)Bean使用。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
bean、javabean、entity、dto、ejb、pojo都是些什么鬼
J2EE的體系結構
EJB3.0規范解讀
企業(yè)版JavaBean討論
Java Bean 與 EJB的區別
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久