JDBC подключения MySQL - PullRequest
       1

JDBC подключения MySQL

1 голос
/ 10 ноября 2010

Я хочу создать веб-приложение с использованием сервлета jsp, а bean-компонент использует IDE Netbeans.

Я хочу знать, где я должен разместить код подключения к базе данных, чтобы я мог использовать свой код базы данных с каждым сервлетом, означает, что я не хочу писать код подключения на каждой странице, где мне нужно использовать базу данных.

Пожалуйста, помогите мне найти и как мне двигаться?

Ответы [ 4 ]

2 голосов
/ 10 ноября 2010

Просто поместите все компоненты JDBC в его собственный класс и импортируйте / вызовите / используйте его в сервлете.

* 1003 Е.Г. *

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 голос
/ 10 ноября 2010

Вот одна идея, как это сделать:

  1. Создайте класс с именем DBConnection со статическим фабричным методом getNewDBConnection
  2. Во время запуска приложения убедитесь, что ваше соединение с БД допустимо, и с помощью ServletContextListener установите класс DBConnection, чтобы упомянутый метод всегда возвращал новое соединение
  3. Используйте по всему коду DBConnection.getNewDBConnection().

Я оставлю шаблон и обработку исключений на ваше усмотрение. Есть более изящные способы сделать это, например, с использованием JPA, но это выходит за рамки этого ответа.

Остерегайтесь вышеуказанной идеи. Я только написал это; но не пробовал и доказал, что это правильно.

0 голосов
/ 10 ноября 2010

Если вы устанавливаете соединение с сервлетами, вы можете создать класс BaseServlet, который расширяет HttpServlet, чем ваш реальный сервер должен расширять BaseServlet, а не HttpServlet. Теперь вы можете написать код подключения только в BaseServlet и просто использовать его в своих псевдо-сервлетах (расширяющих BaseServlet).

0 голосов
/ 10 ноября 2010

Вы пробовали использовать механизмы включения:

<% @ include file = "filename"%>

Подробности здесь http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro8.html

...