0

可能重复:
使用 JDBC 参数化 IN 子句的最佳方法是什么?

我想知道是否可以将列表传递给 SQL 语句。我一直在谷歌搜索,我发现的大多数答案都没有使用保存所有 SQL 查询的单独 .xml 文件。

我的 sql.xml 文件包含:

<sql name="getResultSet"><![CDATA[
SELECT ColumnName FROM TableName 
WHERE OtherColumnName IN(?) 
WITH UR;  ]]>
</sql>

在我的 action.java 中:

String fileName = "sql.xml";
ListQuery query = new ListQuery(getDefaultsDataSource(), SQLParser.getSql(fileName, "getResultSet"), new int[] {Types.ARRAY});
List rows = (List) query.execute(new Object[] { values });

'values' 将是用户输入,例如:

值 = 名称 1、名称 2、名称 3、...

'values' 将是 IN(?) 中的值

我该怎么做?有更好的方法吗?谢谢!

4

0 回答 0