这是我的第一个基于Java的CRUD Web应用程序。我正在使用Eclipse,Tomcat EE服务器和MySQL数据库。该应用程序基本上包含具有名字,姓氏,出生日期,电话号码,电子邮件,地址的用户列表。 在这一点上,我希望能够将新用户添加到用户列表中,仍然无法找出问题所在,以及为什么我无法使其工作。 以下是涉及问题的代码的一部分。
这是servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String page = "";
String action = request.getParameter("action");
if (action.equals("addUser")) {
User user = new User();
user.setFirstName(request.getParameter("firstName"));
user.setLastName(request.getParameter("lastName"));
user.setPhoneNumber(request.getParameter("phoneNumber"));
user.setEmail(request.getParameter("email"));
String month = request.getParameter("month");
String day = request.getParameter("day");
String year = request.getParameter("year");
user.setDob(UserController.parseDate(month, day, year));
boolean addUs = dbUtil.addUser(user);
if (addUs) {
page = "/UsersList.jsp";
} else {
page = "/AddUser.jsp";
}
RequestDispatcher dispatcher = request.getRequestDispatcher(page);
dispatcher.forward(request, response);
}
doGet(request, response);
}
这是DAO实施:
@Override
public boolean addUser(User user) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);) {
String query = "INSERT INTO users (firstName, lastName, dateOfBirth, phoneNumber, email)"
+ " VALUES (?, ?, ?, ?, ?);";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, user.getFirstName());
stmt.setString(2, user.getLastName());
stmt.setDate(3, (Date) user.getDob());
stmt.setString(4, user.getPhoneNumber());
stmt.setString(5, user.getEmail());
stmt.executeQuery();
return true;
} catch (SQLException sqle) {
System.err.println("Error with connection.");
sqle.printStackTrace();
return false;
}
}
如果有必要,我准备分享任何其他信息。