我有以下查询和参数。我不想执行,query(jdbcTemplate.queryForObject)而是将这个带有参数的查询作为字符串传递给另一个方法。如何将此参数分配给准备好的语句并将查询保存为字符串?final String QUERY = "select * " + "from gfc.LSI_ELGBLTY " + "where INSURANCE_ID = ? and " + "SYS_CD = ? and " + "ACCT_TYPE in (?)";Object[] params = new Object[] { request.getInsuranceId(), request.getSystemId(), AcctNameBuilder.toString()};
2 回答
墨色风雨
TA贡献1853条经验 获得超6个赞
您不想这样做,因为?
在大多数情况下用实际值替换准备好的语句将强制数据库重新处理和重新计划 SQL 查询。这真的很浪费,如果你已经有一个准备好的语句,那么使用它。
但是,您可以定义一个共享PreparedStatementCreator
对象并将其传递给JdbcTemplate#query(PreparedStatementCreator psc, ResultSetExtractor<T> rse)
.
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
看看String.format。
String.format("Hello %s, %d", "world", 50);
将返回“Hello world 50”。
格式说明符:
%s - 插入一个字符串
%d - 插入一个有符号整数(十进制)
%f - 插入一个实数作为标准符号
另一个例子:
String.format("The {0} is repeated again: {0}", "word");
返回:“单词再次重复:单词”
添加回答
举报
0/150
提交
取消