猿问

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

我有以下查询和参数。我不想执行,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()

};


开心每一天1111
浏览 427回答 2
2回答

墨色风雨

您不想这样做,因为?在大多数情况下用实际值替换准备好的语句将强制数据库重新处理和重新计划 SQL 查询。这真的很浪费,如果你已经有一个准备好的语句,那么使用它。但是,您可以定义一个共享PreparedStatementCreator对象并将其传递给JdbcTemplate#query(PreparedStatementCreator psc, ResultSetExtractor<T> rse).

素胚勾勒不出你

看看String.format。String.format("Hello&nbsp;%s,&nbsp;%d",&nbsp;"world",&nbsp;50);将返回“Hello world 50”。格式说明符:%s - 插入一个字符串%d - 插入一个有符号整数(十进制)%f - 插入一个实数作为标准符号另一个例子:String.format("The&nbsp;{0}&nbsp;is&nbsp;repeated&nbsp;again:&nbsp;{0}",&nbsp;"word");返回:“单词再次重复:单词”
随时随地看视频慕课网APP

相关分类

Java
我要回答