Java 为什么PreparedStatement(JDBC)会在MySQL 5.7.9中导致MySQLSyntaxErrorException?

Java 为什么PreparedStatement(JDBC)会在MySQL 5.7.9中导致MySQLSyntaxErrorException?,java,mysql,jdbc,prepared-statement,Java,Mysql,Jdbc,Prepared Statement,代码: 标题 登录 用户名: 姓名: 姓: 电邮: 密码: 您正在使用 int-affectedRowCount=preparedStatement.executeUpdate(userInsertSql); 尝试并执行查询,但这是不正确的。您已经在.prepareStatement(userInsertSql)调用中使用了userInsertSql,因此只需 int affectedRowCount=preparedStatement.executeUpdate(); 如何检查

代码:


标题
登录
用户名:


姓名:

姓:

电邮:

密码:

您正在使用

int-affectedRowCount=preparedStatement.executeUpdate(userInsertSql);
尝试并执行查询,但这是不正确的。您已经在
.prepareStatement(userInsertSql)
调用中使用了
userInsertSql
,因此只需

int affectedRowCount=preparedStatement.executeUpdate();

如何检查JDBC驱动程序是否支持它?我的rdbsm是MySQL,是的,我将其设置为数据类型Bit。您可以通过阅读驱动程序的文档来检查它。@MWiesner-我怀疑他们的实际代码中还有其他东西没有向我们展示。编程不是“相信”,而是关于事实和符合逻辑的东西。。。真的:请从这个故事中学习。。。需要向愿意在StackOverflow问题上提供帮助的人提出精确而孤立的问题,否则我们都会把时间浪费在猜测上。如果@GordThompson对你有帮助并且你最终得到了问题的解决方案,你应该通过接受/投票来奖励它。@MWiesner非常正确。。是的,我理解,thx对于Advice对其他用户来说很遗憾,原来的错误已经被编辑掉了,因此它不再适用于问题本身的代码…:-|
package com.qapro.register;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;

import java.util.ArrayList;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/RegisterMember")
public class RegisterMember extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public RegisterMember() {
        super();
        // TODO Auto-generated constructor stub
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String username = request.getParameter("username");
        String name = request.getParameter("name");
        String surname = request.getParameter("surname");
        String email = request.getParameter("email");
        String password = request.getParameter("password");

        Connection connection = null;
        PreparedStatement preparedStatement = null;

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

            String connectionUrl = "jdbc:mysql://localhost:3306/qapro?user=root&password=root";
            connection = DriverManager.getConnection(connectionUrl);

            String userInsertSql = "INSERT INTO qapro.user (user_name, `password`, is_active, name, surname, email, insert_date) VALUES (?, ?, ?, ?, ?, ?, ?);";
            preparedStatement = connection.prepareStatement(userInsertSql);

            preparedStatement.setString(1, username);
            preparedStatement.setString(2, password);
            preparedStatement.setBoolean(3, true);
            preparedStatement.setString(4, name);           
            preparedStatement.setString(5, surname);
            preparedStatement.setString(6, email);
            preparedStatement.setTimestamp(7, new Timestamp(new Date().getTime()));

            int affectedRowCount = preparedStatement.executeUpdate(userInsertSql);
            if(affectedRowCount > 0)
                System.out.println("User has been inserted succesfully");
            else
                System.out.println("Error occurred while inserting user");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        finally{
            try {
                preparedStatement.close();
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }           
    }

}