2010-11-10 248 views
1

我想通過使用NetBeans IDE使用jsp servlet和bean來創建Web應用程序。jdbc mysql連接

我想知道應該在哪裏放置數據庫連接代碼,以便我可以在每個servlet中使用我的數據庫代碼,這意味着我不想在每個需要使用數據庫的頁面中編寫連接代碼。

請幫我找到,我應該如何移動?

+4

接受一些答案。 16個問題,沒有被接受。 – Bozho 2010-11-10 12:58:32

回答

0

如果您從servlet的連接,您可以創建一個擴展HttpServlet的BaseServlet類,而不是實際的服務器必須擴展BaseServlet而不是HttpServlet。 現在,您只需在BaseServlet中編寫連接代碼,並將其用於僞servlet(擴展BaseServlet)即可。

1

這裏有一個想法如何做到這一點:

  1. 做一個使用靜態工廠方法getNewDBConnection
  2. 在應用程序啓動名爲DBConnection類,驗證您的數據庫連接是有效的,並且使用ServletContextListener,設立DBConnection類,所以上述方法將始終返回一個新的連接
  3. 在整個代碼中使用DBConnection.getNewDBConnection()

我會留下您的樣板和異常處理。有更優雅的方式來做到這一點,例如使用JPA,但這不在這個答案的範圍之內。

小心以上的想法。我只寫了它;但沒有嘗試過,並證明它是正確的。

2

只需把所有的JDBC東西放在它自己的類中,然後在servlet中導入/調用/使用它。

E.g.

public class UserDAO { 
    public User find(String username, String password) { 
     User user = new User(); 
     // Put your JDBC code here to fill the user (if found). 
     return user; 
    } 
} 

隨着

import com.example.dao.UserDAO; 
import com.example.model.User; 

public class LoginServlet extends HttpServlet { 
    private UserDAO userDAO; 

    public void init() throws ServletException { 
     userDAO = new UserDAO(); // Or obtain by factory. 
    } 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) { 
     String username = request.getParameter("username"); 
     String password = request.getParameter("password"); 
     User user = userDAO.find(username, password); 
     if (user != null) { 
      // Login. 
     } else { 
      // Error: unknown user. 
     } 
    } 
}