Java 将ID列表传递给SQL语句

Java 将ID列表传递给SQL语句,java,jdbc,jdbctemplate,Java,Jdbc,Jdbctemplate,此代码: ids = "1245, 4526, 7689, 8001"; jdbcTemplate.update("DELETE FROM my_table WHERE id IN (?)", new Object[] { ids }); 引发以下异常: (…)嵌套异常为java.sql.SQLSyntaxErrorException:ORA-01722:无效数字 如何将ID列表传递给上面的sql语句?您的查询错误。无法将列表传递给单个参数 试试这个 jdbcTemplate.update("

此代码:

ids = "1245, 4526, 7689, 8001";
jdbcTemplate.update("DELETE FROM my_table WHERE id IN (?)", new Object[] { ids });
引发以下异常:

(…)嵌套异常为java.sql.SQLSyntaxErrorException:ORA-01722:无效数字


如何将ID列表传递给上面的sql语句?

您的查询错误。无法将列表传递给单个参数

试试这个

jdbcTemplate.update("DELETE FROM my_table WHERE id IN (?,?,?,?)", new Object[] { 1245, 4526, 7689, 8001});

不确定您的案例中jdbcTemplate的类型是什么,但您可能需要检查一下。占位符是一个值,而不是一个值列表。第一个值不起作用,占位符是一个值而不是一个列表,除非JDBC模板(或特定驱动程序)发挥了一些魔力。是的,所以我更改了答案。