【发布时间】:2013-07-26 01:43:10
【问题描述】:
我需要使用 jdbc 在 Java 中执行 SQL PreparedStatement。 我遇到了其中一个参数的问题,因为它具有 SQL 内容以及来自资源文件的字符串。 它看起来像这样:
所需的 SQL:
SELECT * FROM Table T WHERE T.value = 10 AND T.display IN ('Sample1', 'Sample2')
在上述查询中,Sample1 和 Sample2 值必须通过参数传递给 PreparedStatement。
PreparedStatement:
SELECT * FROM Table T WHERE T.value = 10 ?
在我的应用程序代码中,我设置的参数如下:
statement.setString(1, "AND T.display IN ('Sample1', 'Sample2')");
但是这并没有返回适当的结果。
考虑到它也有 SQL 内容和字符串,有没有更好的方法来构建这个特定的参数?
编辑:
Sample1, Sample2 等是在运行时从外部文件中检索的字符串,每次可以有不同数量的这些字符串。 IE。只能有一个字符串Sample1或多个字符串Sample1, Sample2, Sample3, etc.。
EDIT2: 使用的数据库是 Oracle。
【问题讨论】:
-
您能否详细说明“但是这并没有返回适当的结果”?
-
查询没有被拒绝,但问题似乎在于参数中添加了双引号。
-
你可能想指定你正在使用的数据库
-
同时打印生成的sql语句
-
@Amine 我认为无法检查生成的 SQL。 stackoverflow.com/a/2382561/1505128
标签: java sql jdbc prepared-statement