我有以下查詢和參數(shù)。我不想執(zhí)行,query(jdbcTemplate.queryForObject)而是將這個帶有參數(shù)的查詢作為字符串傳遞給另一個方法。如何將此參數(shù)分配給準(zhǔn)備好的語句并將查詢保存為字符串?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 回答

墨色風(fēng)雨
TA貢獻1853條經(jīng)驗 獲得超6個贊
您不想這樣做,因為?
在大多數(shù)情況下用實際值替換準(zhǔn)備好的語句將強制數(shù)據(jù)庫重新處理和重新計劃 SQL 查詢。這真的很浪費,如果你已經(jīng)有一個準(zhǔn)備好的語句,那么使用它。
但是,您可以定義一個共享PreparedStatementCreator
對象并將其傳遞給JdbcTemplate#query(PreparedStatementCreator psc, ResultSetExtractor<T> rse)
.

素胚勾勒不出你
TA貢獻1827條經(jīng)驗 獲得超9個贊
看看String.format。
String.format("Hello %s, %d", "world", 50);
將返回“Hello world 50”。
格式說明符:
%s - 插入一個字符串
%d - 插入一個有符號整數(shù)(十進制)
%f - 插入一個實數(shù)作為標(biāo)準(zhǔn)符號
另一個例子:
String.format("The {0} is repeated again: {0}", "word");
返回:“單詞再次重復(fù):單詞”
添加回答
舉報
0/150
提交
取消