Java 您的SQL语法有错误,但查询在MySQL工作台中运行
查询在IntelliJ中不起作用,但在SQL workbench中起作用。在其他查询中,updatePreparedStatement方法起作用。我已经检查了我的查询的语法错误,奇怪的是它确实在sql workbench中运行。谁能帮个忙吗Java 您的SQL语法有错误,但查询在MySQL工作台中运行,java,mysql,sql,intellij-idea,Java,Mysql,Sql,Intellij Idea,查询在IntelliJ中不起作用,但在SQL workbench中起作用。在其他查询中,updatePreparedStatement方法起作用。我已经检查了我的查询的语法错误,奇怪的是它确实在sql workbench中运行。谁能帮个忙吗 public void updatePreparedStatement(String queryWithParameters, Object ... values) { ArrayList<Map<String, Object>&g
public void updatePreparedStatement(String queryWithParameters, Object ... values) {
ArrayList<Map<String, Object>> result = new ArrayList<>();
try(PreparedStatement ps = this.connection.prepareStatement(queryWithParameters)) {
for(int i=0; i<values.length; i++) {
ps.setObject(i+1, values[i]);
}
int rs = ps.executeUpdate();
}catch (SQLException e){
e.printStackTrace();
}
}
public void assignOrdersToDeliveryRoute(BigInteger routeNumber, int[] orderNumbers){
DbConnection connection = new DbConnection();
System.out.println(Arrays.toString(orderNumbers));
StringBuilder orderNumberString = new StringBuilder();
int index =1;
for (int orderNumber : orderNumbers) {
String order = String.valueOf(orderNumber);
if (index < orderNumbers.length ){
orderNumberString.append(order).append(",");
}
else {
orderNumberString.append(order);
}
index++;
}
System.out.println(orderNumberString);
String query = "SET FOREIGN_KEY_CHECKS=0; UPDATE bestelling SET bezorgroutenummer = ? WHERE bestelnummer IN (" + orderNumberString + ")";
System.out.println(query);
connection.updatePreparedStatement(query, routeNumber);
}
public void updatePreparedStatement(带参数、对象…值的字符串查询){
ArrayList结果=新建ArrayList();
try(PreparedStatement ps=this.connection.prepareStatement(queryWithParameters)){
对于(int i=0;i表示:
预处理语句的SQL语法不支持多个语句(即,单个字符串中的多个语句由;个字符分隔)
一次运行一个语句。您所说的“在IntelliJ中不工作”是什么意思?具体错误是什么?