为了账号安全,请及时绑定邮箱和手机立即绑定

使用 JdbcTemplate 将查询准备为字符串

使用 JdbcTemplate 将查询准备为字符串

开心每一天1111 2021-09-26 16:28:54
我有以下查询和参数。我不想执行,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).


查看完整回答
反对 回复 2021-09-26
?
素胚勾勒不出你

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");

返回:“单词再次重复:单词”


查看完整回答
反对 回复 2021-09-26
  • 2 回答
  • 0 关注
  • 426 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信