我需要在Java中使用字符串列表做一个大的SQL查询对一个MySQL数据库,例如:逃逸字符串为MySQL在Java中
SELECT * FROM db_table WHERE id IN (....);
不幸的是,输入API有几分限制在这里和我只给出一个字符串列表作为输入。
通常我只想用一个参数化查询,但不会允许我通过一个逗号分隔的列表,以便像下面这样将无法工作:
SELECT * FROM db_Table WHERE id IN (?);
preparedStaement.Set(1, "A,B,C,D,E");
我在这个线程了一下:PreparedStatement IN clause alternatives?
不幸的是没有更具创意的选项可以工作,因为我没有对数据库的写入权限,所以我不能创建临时表。
那么 - 任何想法?我只关心MySQL作为底层的源代码,所以如果解决方案是特定于MySQL的,那很好。
在此先感谢
编辑:单独逃离每个字符串将被罚款 - 但有什么办法呢,在Java中?我没有找到很好的运气,我只能从apache看到一些我不能使用的东西。
- 丹
所以也是我所链接的主题中回答没有帮助?另一种方式:顺便说一句:http://stackoverflow.com/questions/2861230/what-is-the-best-approach-using-jdbc-for-parameterizing-an-in-clause – BalusC 2011-03-03 03:19:41
我确实看到 - 我是希望我不必这样做 - 但我想因为没有更好的答案 - 我会去那样做。 – debracey 2011-03-03 14:21:19