Java 删除mysql中的记录时出现com.mysql.jdbc.exceptions.MySQLSyntaxErrorException
以下代码引发语法错误异常 我在后端使用Ajax调用对表执行CRUD操作Java 删除mysql中的记录时出现com.mysql.jdbc.exceptions.MySQLSyntaxErrorException,java,mysql,jdbc,Java,Mysql,Jdbc,以下代码引发语法错误异常 我在后端使用Ajax调用对表执行CRUD操作 public class CrudDao { private Connection connection; private String table; public CrudDao(Connection con, String table) { this.connection = con; this.table = table; } public
public class CrudDao {
private Connection connection;
private String table;
public CrudDao(Connection con, String table) {
this.connection = con;
this.table = table;
}
public void deleteUser(int RECORDID) {
try {
PreparedStatement preparedStatement = connection
.prepareStatement("delete from " + table
+ "where USERID=?");
preparedStatement.setInt(1, RECORDID);
preparedStatement.executeUpdate();
} catch (SQLException e) {
System.out.println(e);
}
}
}
在上面的代码中,我只编写了delete方法,它抛出com.mysql.jdbc.exceptions.MySQLSyntaxErrorException
异常的跟踪是
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USERID=102' at line 1
{"Result":"OK"}
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3176)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1153)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303)
at com.symp.CrudDao.deleteUser(CrudDao.java:33)
at com.symp.CRUDController.service(CRUDController.java:82)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
试着改变
PreparedStatement preparedStatement = connection
.prepareStatement("delete from " + table
+ "where USERID=?");
到
您的表名和关键字where
一起运行,中间没有空格 试试换衣服
PreparedStatement preparedStatement = connection
.prepareStatement("delete from " + table
+ "where USERID=?");
到
您的表名和关键字where
一起运行,中间没有空格 试试换衣服
PreparedStatement preparedStatement = connection
.prepareStatement("delete from " + table
+ "where USERID=?");
到
您的表名和关键字where
一起运行,中间没有空格 试试换衣服
PreparedStatement preparedStatement = connection
.prepareStatement("delete from " + table
+ "where USERID=?");
到
您的表名和关键字
where
一起运行,中间没有空格 在表名
和where
子句之间需要有空格
"delete from " + table + " where USERID=?"
当前,您的sql
脚本如下所示
delete from tablename where USERID=102
在表名
和where
子句之间需要有空格
"delete from " + table + " where USERID=?"
当前,您的sql
脚本如下所示
delete from tablename where USERID=102
在表名
和where
子句之间需要有空格
"delete from " + table + " where USERID=?"
当前,您的sql
脚本如下所示
delete from tablename where USERID=102
在表名
和where
子句之间需要有空格
"delete from " + table + " where USERID=?"
当前,您的sql
脚本如下所示
delete from tablename where USERID=102
您确定这与给出异常的代码相同吗?因为在查询中您使用的是'recordid=2',但您得到的是'USERID=102'的异常,看起来ErrorException不是来自此代码。我编辑了代码@adPost complete code和异常跟踪。这将是有帮助的,但仍然不确信错误来自发布的代码检查您的表名,当您创建PS时。您确定这与给出异常的代码相同吗?因为在查询中您使用的是'recordid=2',但您得到的是'USERID=102'的异常,看起来ErrorException不是来自此代码。我编辑了代码@adPost complete code和异常跟踪。这将是有帮助的,但仍然不确信错误来自发布的代码检查您的表名,当您创建PS时。您确定这与给出异常的代码相同吗?因为在查询中您使用的是'recordid=2',但您得到的是'USERID=102'的异常,看起来ErrorException不是来自此代码。我编辑了代码@adPost complete code和异常跟踪。这将是有帮助的,但仍然不确信错误来自发布的代码检查您的表名,当您创建PS时。您确定这与给出异常的代码相同吗?因为在查询中您使用的是'recordid=2',但您得到的是'USERID=102'的异常,看起来ErrorException不是来自此代码。我编辑了代码@adPost complete code和异常跟踪。这会很有帮助,但仍然不确信错误来自于检查表名,创建PS时,此操作正常,不会引发任何异常,但不会在数据库中删除记录。此操作正常,不会引发任何异常,但不会在数据库中删除记录。此操作正常,不会引发任何异常,但不会在数据库中删除记录。此操作正常,不会正在引发任何异常,但数据库中的记录未被删除。