首页 > 解决方案 > MySQL 数据库不更新值(JSP 和 Servlet 项目)

问题描述

我正在编写一个 JSP 和 Servlet 项目,以在 Eclipse 中使用他们的姓名、姓氏和密码注册用户。当我在网页中输入值时,一切正常,但是当我之后检查数据库时,表值没有被更新(表仍然是空的)。使用了 Tomcat 网络服务器。使用的 MVC 文件的代码段如下:

用户DAO.java '''

         public int registerUser(Users users) throws ClassNotFoundException{    
        String query = "INSERT INTO users" + "(id, name, surname, password) VALUES" + "(?, ?, ?, ?);"; int result = 0;

        Class.forName("com.mysql.jdbc.Driver");

        try (Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/churchdb","root","");

            //Step 2:Create a statement using connection object
                PreparedStatement stmt = con.prepareStatement(query)){
                stmt.setInt(1, 1);
                stmt.setString(2, users.getUserName());
                stmt.setString(3,users.getSurname());
                stmt.setString(4, users.getPassword());

                System.out.println(stmt);

            //Step 3: Execute the query or update query
                result = stmt.executeUpdate();


        }
        catch(SQLException e){
            //process sql exception
            e.printStackTrace();
        }
        return result;
        }
''' 

UserServlet.java '''

    private UserDAO userDao = new UserDAO();  
              protected void doGet(HttpServletRequest request, HttpServletResponse response) throws 
              ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());

        RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/userregistration.jsp");
        dispatcher.forward(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String userName = request.getParameter("userName");
        String surname = request.getParameter("surname");
        String password = request.getParameter("password");

        Users users = new Users();
        users.setUserName(userName);
        users.setSurname(surname);
        users.setPassword(password);

        try{
            userDao.registerUser(users);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }

        RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/userdetails.jsp");
        dispatcher.forward(request, response);

    }

}

''' 用户注册.php '''

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Register</title>

<link href="bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css"/>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>

</head>
<body>
    <div align="center">
    <h1>User Registration form</h1>>
    <form action="<%= request.getContextPath() %>/register" method="post">
    <table style="with: 80%">
        <tr>
            <td>Name</td>
            <td><input type="text" name="userName" /></td>
        </tr>

        <tr>
            <td>Surname</td>
            <td><input type="text" name="surname"/></td>
        </tr>

        <tr>
            <td>Password</td>
            <td><input type="text" name=password/></td>
        </tr>
    </table>

    <input type="submit" value="Submit" />
    </form>
    </div>
</body>
</html>

'''

注意: 还有javabean文件

标签: mysqljspservletsjdbc

解决方案


推荐阅读