jdbc mysql连接

时间:2010-11-10 11:30:57

标签: java servlets jdbc

我想使用jsp servlet和bean am使用Netbeans IDE创建一个Web应用程序。

我想知道在哪里放置数据库连接代码,以便我可以将数据库代码与每个servlet一起使用,这意味着我不想在需要使用数据库的每个页面中编写连接代码。

请帮我找,我该怎么搬?

4 个答案:

答案 0 :(得分: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.
        }
    }
}

答案 1 :(得分:1)

以下是一个如何做到这一点的想法:

  1. 使用静态工厂方法DBConnection
  2. 创建名为getNewDBConnection的类
  3. 在应用程序启动期间,验证数据库连接是否有效,并使用ServletContextListener设置DBConnection类,以便提及的方法始终返回新连接
  4. 在整个代码DBConnection.getNewDBConnection()中使用。
  5. 我将把样板和异常处理留给您。有更优雅的方法,例如使用JPA,但这超出了这个答案的范围。

    谨防上述想法。我只写过它;但是没有尝试过并且证明它是正确的。

答案 2 :(得分:0)

您是否尝试过使用包含机制:

  

<%@ include file =“filename”%>

详情http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro8.html

答案 3 :(得分:0)

如果从servlet建立连接,则可以创建扩展HttpServlet的BaseServlet类,而不是实际的服务器必须扩展BaseServlet而不是HttpServlet。 现在,您可以在BaseServlet中编写连接代码,并在伪servlet中使用它(扩展BaseServlet)。