Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法向servlet上的表插入数据_Java_Mysql_Servlets - Fatal编程技术网

Java 无法向servlet上的表插入数据

Java 无法向servlet上的表插入数据,java,mysql,servlets,Java,Mysql,Servlets,我正在尝试从注册表表单读取数据并将其插入数据库,这部分应该添加该项,但它不起作用。你有推荐信吗 if ("/RegForm".equals(url)) { request.getRequestDispatcher("/index.jsp").forward(request, response); return; } else if ("/Signup".equals(url)) { //dddddddd try {

我正在尝试从注册表表单读取数据并将其插入数据库,这部分应该添加该项,但它不起作用。你有推荐信吗

 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);
检查count的值。将一些S.O.P放入else条件中,并交叉检查它是否会进入该部分。

您应该使用以避免,您的代码应该是:

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;
    }

你可以在这里查看更多信息

你能告诉我你遇到了什么异常吗。你是如何得到st_的名字,st_的id,st_的gpa的。请提供更多说明。所以我们可以提供帮助。省略撇号,但请先真正阅读:这是撇号!你是对的,谢谢。你正在尝试将字符串作为整数插入。即使在添加了单引号之后,这也可能会导致sql注入或简单地打断o'brien之类的字符串。请使用insted of语句避免此类错误,也可以避免sql注入。这是一个错误,很抱歉造成误导。