私はSQLを実行して結果を取得するためにSpring-JDBCを使用しています。PreparedStatement - すべてのパラメータを束縛していません
SELECT
SUM(spend) total_sum
FROM TABLE_NAME
WHERE
sup_id = ? AND
((YEAR = ? AND period IN (?)) OR
(YEAR = ? AND period IN(?)))
、バインド変数として渡されます。
final Object[] paramMap = { "1234", "2010",
"'01_JAN','02_FEB','03_MAR'", "2009", "'11_NOV','12_DEC'" };
final List<LeadTimeDto> query = getJdbcTemplate().query(sql, paramMap,
new RowMapper<LeadTimeDto>() {
@Override
public LeadTimeDto mapRow(final ResultSet resultSet,
final int arg1) throws SQLException {
final LeadTimeDto leadTimeDto = new LeadTimeDto();
final String string = resultSet.getString("total_sum");
System.out.println("ltime = " + string);
leadTimeDto.setLeadTime(string);
return leadTimeDto;
}
});
は、私はここで何が起こっているのかわかりません。私はTHIRDパラメータのバインディングに問題があります。 3番目のパラメータの値をクエリ自体に書き込むと、以下のように動作します。
引用符( ')に問題がある場合は、FIFTH paramも問題であったはずです。しかし、それは結構です。
私はマップとビーンの両方でgetNamedParameterJdbcTemplate()を使用してみましたが、運はありませんでした。
: いくつかの選択肢を説明し、次の資料を参照してください? –
例外がありますか?はいの場合はpls –
エラーはありません。レコードがフェッチされないということだけです。 – HanuAthena