【发布时间】:2015-11-27 00:05:24
【问题描述】:
我在外部属性文件中有一条 sql 语句,因此不能像某些人建议的那样动态修改它:
query = select distinct BSG_HANDLE FROM MYUSER.MYTABLE WHERE RATE_CODE IN (?) AND CORP = ?
SOAP 请求提供将用于填充 IN 值的字符串数组。
public BsgHandleResponse getBsgHandleByRateCode(
@QueryParam("rateCodes") String rateCodes,
@QueryParam("corp") String corp)
然后我将它们放入准备好的语句中,如下所示:
ps = startTimedPreparedStatement(conn,SQL_FROM_PROPERTIES_FILE);
ps.setString(1, rateCodes);
ps.setString(2, corp);
rs = ps.executeQuery();
如果 rateCodes 是这样的单个字符串值,它可以正常工作:
25
但是对于这样的多个值失败:
25, 1P
我认为我必须这样做
public BsgHandleResponse getBsgHandleByRateCode(
@QueryParam("rateCodes") final List<String> rateCodes,
@QueryParam("corp") String corp)
ps = startTimedPreparedStatement(conn,SQL_FROM_PROPERTIES_FILE);
ps.setArray(1, rateCodes);
ps.setString(2, corp);
rs = ps.executeQuery();
但我无法让它工作。有什么想法吗?
【问题讨论】:
标签: java sql oracle prepared-statement