因此尝试读取然后更新SQL数据库。我可以读取来自数据库的信息但是当我尝试更新它时,由于某种原因总是出错。我尝试使用MySQL应用程序使我的语法正常工作,并且它在那里工作,但在这里它不想...
以下是注释代码:
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM devices");
Statement stmt2 = con.createStatement();
String updateQuery = "UPDATE cb_internetot.devices" +
"SET State = 6 " +
"WHERE idDevices = 0;";
stmt2.execute(updateQuery);
这是我得到的堆栈跟踪:
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:526)
com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
com.mysql.jdbc.Util.getInstance(Util.java:383)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4208)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4140)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2597)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2758)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2820)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2769)
com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:907)
com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:791)
ConnAndReceive.connectAndQuery(ConnAndReceive.java:37)
ConnAndReceive.main(ConnAndReceive.java:15)
我在cloudbees上运行数据库,所以它可能是一个安全问题?我觉得不会因为我能正确地从它中选择......
答案 0 :(得分:2)
在表名和set
关键字之间添加一个空格,否则sql语句的语法错误:
String updateQuery = "UPDATE cb_internetot.devices " +
^