初次使用無狀態sessionbean的問題
如果前一連線在取得之後,什麼也不做便關閉,則後一連線的AutoCommit()值為true;
如果前一連線有做查詢的話,為什麼後一連線的AutoCommit值會為false??
(注:此sessionbean的事務設定為容器管理)
如果將此方法放到普通的javabean裡來實現,則方法中取得的兩次連線的AutoCommit()值均為true,
請問這是為什麼??
測試程式碼如下:
測試一:
public void test() throws SQLException, Exception {
System.out.println("test1");
Context ictx1 = new InitialContext();
DataSource ds1 = (DataSource) ictx1.lookup("JNDI/SIDB");
Connection conn1=ds1.getConnection();
System.out.println("conn1.getAutoCommit()="+conn1.getAutoCommit());
conn1.close();
Context ictx2 = new InitialContext();
DataSource ds2 = (DataSource) ictx2.lookup("JNDI/SIDB");
Connection conn2=ds2.getConnection();
System.out.println("conn2.getAutoCommit()="+conn2.getAutoCommit());
conn2.close();
}
執行結果:
[07-2-1 11:00:48:969 CST] 462c89fd SystemOut O test1
[07-2-1 10:58:53:203 CST] 896c9e5 SystemOut O conn1.getAutoCommit()=true
[07-2-1 10:58:53:219 CST] 896c9e5 SystemOut O conn2.getAutoCommit()=true
測試二:
public void test() throws SQLException, Exception {
System.out.println("test2");
Context ictx1 = new InitialContext();
DataSource ds1 = (DataSource) ictx1.lookup("JNDI/SIDB");
Connection conn1=ds1.getConnection();
System.out.println("conn1.getAutoCommit()="+conn1.getAutoCommit());
PreparedStatement pstmt=conn1.prepareStatement("select * from sysuser");
ResultSet rs=pstmt.executeQuery();
rs.close();
pstmt.close();
conn1.close();
Context ictx2 = new InitialContext();
DataSource ds2 = (DataSource) ictx2.lookup("JNDI/SIDB");
Connection conn2=ds2.getConnection();
System.out.println("conn2.getAutoCommit()="+conn2.getAutoCommit());
conn2.close();
}
執行結果:
[07-2-1 11:00:48:969 CST] 462c89fd SystemOut O test2
[07-2-1 11:00:48:969 CST] 462c89fd SystemOut O conn1.getAutoCommit()=true
[07-2-1 11:00:48:984 CST] 462c89fd SystemOut O conn2.getAutoCommit()=false(****區別之處****)
相關文章
- 有關EJB的有態SessionBean和無態SessionBean的疑惑SessionBean
- sessionbean +bmp取值出錯的問題SessionBean
- SessionBean呼叫資料庫的問題SessionBean資料庫
- 一個關於SessionBean呼叫的問題。SessionBean
- 無狀態會話bean的疑問會話Bean
- [求助]..新手!遇到struts呼叫sessionbean問題?SessionBean
- 用sessionBean讀取文字資料的問題SessionBean
- 有狀態和無狀態的區別
- 初次使用EasyUI框架外掛遇到的問題及總結UI框架
- IPv6無狀態地址自動配置(SLAAC)-常見問題
- 請教:EJB3的SessionBean主動呼叫問題SessionBean
- 初次接觸React Native遇到的問題React Native
- Blazor中的無狀態元件Blazor元件
- 解決 MVC 使用者上線下線狀態問題MVC
- Eclipse初次java開發問題總結-4-Maven使用問題彙總EclipseJavaMaven
- 無狀態協議協議
- 關於有狀態BEAN如何透過關鍵字儲存使用者狀態的問題,請幫忙Bean
- Spring Bean Scope 有狀態的Bean和無狀態的BeanSpringBean
- Bootstrap 模態框無法呼叫的問題boot
- vmware_vmware Esxi無法在開機狀態擴充套件虛擬硬碟的問題套件硬碟
- 無線網路卡狀態不對問題:已連線 顯示 未連線
- 【原創】eclipse + JBoss 5 + EJB3開發指南(2):編寫有狀態的SessionBeanEclipseSessionBean
- 檢查Oracle的鎖狀態並清除問題會話Oracle會話
- Angular狀態管理的使用Angular
- 系統設計架構:有狀態與無狀態架構
- 關於有狀態和無狀態會話bean的解釋 (轉)會話Bean
- 工作流從無狀態切換到有狀態的好處
- cookie儲存使用者狀態 無session系統CookieSession
- 在聯網狀態下,有很多應用無法聯網問題,如360安全衛士, Smartscreen篩選器無法訪問, 部分網頁無法訪問等問題的解決方法網頁
- 解決無法使用VI的問題
- 初次使用UbuntuUbuntu
- websocket初次使用Web
- 【架構設計】無狀態狀態機在程式碼中的實踐架構
- 狀態模式中迴圈呼叫子元件時遇到的問題模式元件
- 有限狀態機(FSM)的使用
- 解決crs_stat狀態為UNKNOWN問題
- iOS中webView巢狀tableView中動態高度問題iOSWebView巢狀
- SAP Fiori和WebClient UI的有狀態和無狀態行為設計原理WebclientUI