有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java您的SQL语法有错误,但查询在MySQL工作台中运行

查询在IntelliJ中不起作用,但在SQL workbench中起作用。在其他查询中,updatePreparedStatement方法起作用。我已经检查了我的查询的语法错误,奇怪的是它确实在sql workbench中运行。谁能帮个忙吗

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

共 (1) 个答案