繁体   English   中英

无法将数据插入servlet上的表

[英]Cannot insert a data to table on servlet

我正在尝试从reg表单中读取数据并将其插入到db中,这部分应该添加该项目,但是它不起作用。 你有建议吗?

 if ("/RegForm".equals(url)) {
        request.getRequestDispatcher("/index.jsp").forward(request, response);
        return;
    } else if ("/Signup".equals(url)) {
        //dddddddd
        try {
            // Register JDBC driver
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/deneme", "root", "");
            Statement stmt = conn.createStatement();
            // Execute SQL query
            String sql1 = "INSERT INTO students (name, id, `gpa`) VALUES ("+ request.getParameter("st_name") +","+ request.getParameter("st_id") +","+ request.getParameter("st_gpa") +")";
            stmt.executeUpdate(sql1);

        } catch (Exception se) {
            //Handle errors for JDBC
        }

        request.getRequestDispatcher("/register_action.jsp").forward(request, response);
        return;
    }

ps:我真的不熟悉在Web应用程序中使用Java,只是试图学习。

您遇到任何特定的错误吗? 或做一件事就是像这样打印计数:

int count= stmt.executeUpdate(sql1);

检查计数值。 在其他条件中放入一些SOP,然后交叉检查是否要转到该部分。

您应该使用prepareStatement避免sql注入 ,您的代码应为:

if ("/RegForm".equals(url)) {
        request.getRequestDispatcher("/index.jsp").forward(request, response);
        return;
    } else if ("/Signup".equals(url)) {
        //dddddddd
        try {
            // Register JDBC driver
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/deneme", "root", "");

            PreparedStatement preparedStatement = null;


            // Execute SQL query
            String  insert= "INSERT INTO students (name, id, `gpa`) VALUES (?,?,?)"; 

            conn.setAutoCommit(false);
            preparedStatement = con.prepareStatement(insert);
            //Assume all paramaters as String
            preparedStatement.setString(1, request.getParameter("st_name"));
            preparedStatement.setString(2, request.getParameter("st_id"));
            preparedStatement.setString(3, request.getParameter("st_gpa"));
            preparedStatement.executeUpdate();
            conn.commit();
        } catch (Exception se) {
            //Handle errors for JDBC
        }

        request.getRequestDispatcher("/register_action.jsp").forward(request, response);
        return;
    }

您可以在此处查看更详细的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM