2017-03-20 96 views
1

預先感謝您的關注。在這裏,我對作爲初學者的jsp servlet和jdbc的mvc模式有很好的想法。我的情況是哪個地方更好地在servlet mvc中創建jdbc連接?

  • MySQL表的員工如此POJO類員工
  • EmployeeDao用於DAO操作
  • 服務類的登錄&其他服務認證
  • 的Servlet來從jsp頁面數據和呼叫服務

現在我不確定創建連接的最佳方式,我在下面找到了一些想法,

  1. 通過加載驅動程序在EmployeeDao構造函數中創建jdbc連接。用於創建dao對象和執行操作的服務,然後使用同一對象的方法銷燬連接以關閉連接。
  2. 加載驅動程序並在servlet的init()方法中創建連接?如果是這樣,那麼我是否需要將在init中創建的連接對象傳遞給服務,以便它可以進一步傳遞dao?而servlet的destroy()將被用來關閉連接。
  3. 使用ServletListener或ServletContextListener來(沒有這些簡單的想法(需要學習一些文件)

直到現在我使用DAO類用於連接和加載驅動程序,但我需要優化它,使我的應用程序有效。糾正我,如果我誤導的地方。感謝您

+0

理想的情況下,用一個框架來處理這一切爲你 - 你所描述的約90%可用外的開箱即用的彈簧引導, Spring MVC和Spring Security。 – chrylis

+0

這些都不是。在需要時獲得連接,並在交易完成後儘快提交。你不能(也不想)在服務併發請求的線程之間共享連接。 –

+0

爲連接創建單獨的包。建立功能來獲取和關閉連接。無論何時你需要一個連接調用getConnection方法一旦你完成了你的事情,你可以調用closeConnection方法 –

回答

1

所以,最好的辦法是下一個:

  1. 創建ServletContextListener
  2. 在contextInitialized方法中獲取數據源連接池。
  3. 在contextInitialized方法中,創建所需的所有服務,並使用構造函數(比setters更可取)將dataSouce注入到服務中。
  4. 將所有服務放入ServletContext中。
  5. 在每個servlet的init方法中獲取服務,即您需要用於指定的servlet。
  6. 快樂,並用它們:)
+0

是的,這是我正在尋找。如果有任何文件,請提供文件鏈接。 –

1

使用Spring MVC和Spring JDBC(用於處理DAO)是足以滿足上述要求一起。

0

絕對Spring MVC的將是一個不錯的選擇。 但如果你必須在Servl中使用等MVC,那麼你可以去下面的鏈接,這可能會對你有所幫助。

如果你只是想建立一個沒有數據源的JDBC連接,去here

如果你想創建通過數據源,去here

+0

非常感謝。我知道Spring與Hibernate是更好的方式,但我被限制爲繼續使用servlet jdbc。 –