JSP로부터 정보를 요청하고이를 Java Servlet을 통해 데이터베이스에 저장하려고합니다. 나는 이런 (단순화 된) 자바 서블릿을 가지고있다.하나의 서블릿 클래스를 서블릿과 DAO 클래스로 나누기
protected void doPost(//parameters etc.){
String brand = request.getParameter("brand");
String model = request.getParameter("model");
CarBean newCar = new CarBean(brand, model);
try {
Connection con = ConnectionFactory.getInstance().getConnection();
PreparedStatement ps = con.prepareStatement("INSERT INTO Cars (brand, model)"
+ "VALUES (?, ?)";
ps.setString(1, newCar.getBrand());
ps.setString(2, newCar.getModel());
ps.executeUpdate();
ps.close();
} catch ... {
}
모든 것이 올바르게 작동하지만 이제는이 데이터베이스 연결을 자체 클래스로 분리하려고합니다. 데이터베이스에 대한 세 가지 방법 (추가, 삭제, 편집)이 필요한 클래스를 만들고 싶습니다.
다른 패키지에있는 클래스에서 어떻게 newCar 객체를 매개 변수로 사용할 수 있습니까? 나는 이것을했지만, 작동하지 않습니다. 그것은
cannot find symbol, symbol: method addCar(CarBean), location: class MainServlet
말을이 서블릿 방법 addCar를 만들기 위해 제공하는 것
protected void doPost(//parameters etc.){
String brand = request.getParameter("brand");
String model = request.getParameter("model");
CarBean newCar = new CarBean(brand, model);
addCar(newCar);
,하지만 할 수 없습니다
public class DAO{
public void addCar(CarBean newCar) throws ServletException {
try {
Connection con = ConnectionFactory.getInstance().getConnection();
PreparedStatement ps = con.prepareStatement("INSERT INTO Cars (brand, model)"
+ "VALUES (?, ?)";
ps.setString(1, newCar.getBrand());
ps.setString(2, newCar.getModel());
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
throw new ServletException(e);
}
...
public void deleteCar ...
public void editCar ...
하고 난 그냥 같이 서블릿에서 addCar 전화 권리. addCar 메서드는 DAO 클래스 (Database 폴더에 있음)에 있어야합니다.
이것이 상당히 혼란 스럽나요? 데이터를 다른 클래스로 전송하는 try-catch를 이동하는 방법은 무엇입니까?
당신은 * 작동하지 않는 것을 의미합니까? 어떤 종류의 오류 또는 예외가 발생합니까? –
어떤 오류가 발생합니까? –
예제가 올바르게 보이지만 다른 패키지를 사용하면 문제가 없지만 서블릿에서 가져와야합니다. – Teg