如何在資料訪問層中引用資料庫連線池?
在一個典型的WEB應用中,使用三層模式,顯示層,邏輯層,資料層。邏輯層和資料層都不引用任何顯示層/WEB層裡
的引數,例如request, session, context等。
在資料層,如果使用傳統的建立連線的方法,我總是可以用DriverManager.getConnection(資料庫url)獲得連線。
這些程式碼可以放在資料層,同WEB容器毫無關係。
但如果使用資料庫連線池的話,連線池是在WEB伺服器裡配置的,同WEB容器有關,而且符合邏輯的辦法是在WEB服務
器啟動時,透過ServletContextListener建立這個連線池。
不透過引數傳遞的方式(WEB容器/顯示->邏輯層->資料層),如何在資料訪問層引用獲得這個連線池呢?我現在有
兩個辦法:
1 我可以在資料層裡使用如下程式碼:
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQLDB");
conn = ds.getConnection();
但是,如果每次使用這段程式碼來獲得連線的話,代價同樣很大。
2 在ServletContextListener中建立一個連線池的singleton,資料層裡引用這個singleton.
我想請教一哈,各位還有別的辦法麼?謝謝了。
的引數,例如request, session, context等。
在資料層,如果使用傳統的建立連線的方法,我總是可以用DriverManager.getConnection(資料庫url)獲得連線。
這些程式碼可以放在資料層,同WEB容器毫無關係。
但如果使用資料庫連線池的話,連線池是在WEB伺服器裡配置的,同WEB容器有關,而且符合邏輯的辦法是在WEB服務
器啟動時,透過ServletContextListener建立這個連線池。
不透過引數傳遞的方式(WEB容器/顯示->邏輯層->資料層),如何在資料訪問層引用獲得這個連線池呢?我現在有
兩個辦法:
1 我可以在資料層裡使用如下程式碼:
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQLDB");
conn = ds.getConnection();
但是,如果每次使用這段程式碼來獲得連線的話,代價同樣很大。
2 在ServletContextListener中建立一個連線池的singleton,資料層裡引用這個singleton.
我想請教一哈,各位還有別的辦法麼?謝謝了。
相關文章
- 資料訪問連線池和執行緒池執行緒
- 資料庫連線池資料庫
- 用連線池提高Servlet訪問資料庫的效率 (轉)Servlet資料庫
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 如何在weka中連線資料庫資料庫
- 關於WebLogic 訪問Oracle 資料庫(建立連線池)問題WebOracle資料庫
- [求助]資料庫連線池配置問題資料庫
- 資料庫連線池原理資料庫
- Proxool資料庫連線池資料庫
- JAVA資料庫連線池Java資料庫
- Flask資料庫連線池Flask資料庫
- hibernate資料庫連線池的問題資料庫
- 一個資料庫連線池的問題資料庫
- 菜鳥問題:資料庫連線池原理?資料庫
- .net 資料庫連線池超時問題資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- python資料庫連線池Python資料庫
- 手寫資料庫連線池資料庫
- 瞭解資料庫連線池資料庫
- 資料庫連線池的理解資料庫
- 資料庫連線池的使用資料庫
- 資料庫連線池淺析資料庫
- WASCE的資料庫連線池資料庫
- JNDI配置資料庫連線池資料庫
- PROXOOL資料庫連線池使用資料庫
- 關於資料庫連線池資料庫
- .net 資料庫連線池配置資料庫
- 資料庫連線池實現資料庫
- Javaweb-資料庫連線池JavaWeb資料庫
- Python 中的 MySQL 資料庫連線池PythonMySql資料庫
- django中的資料庫連線池實現Django資料庫
- JDBC、JDBC框架、資料庫事務、資料庫連線池JDBC框架資料庫
- 【ITOO】--SQL資料庫優化:切割、資料庫連線池SQL資料庫優化
- 資料訪問層
- MySql資料庫連線池專題MySql資料庫
- JavaWeb之事務&資料庫連線池JavaWeb資料庫
- mysql資料庫連線池配置教程MySql資料庫