1
私は、この要求があります。BPartnerMapper
で春:JDBCテンプレート内の前のライン
private List<IWsResponse> getBPartnerDetails(String valueNetwork, String reportLevel2) {
JdbcTemplate tm = new JdbcTemplate(ds.getDataSource());
StringBuffer sql = new StringBuffer("SELECT * FROM XRV_BPARTNERDETAILS where rownum < 10 order by BPartner_ID");
response = tm.query(sql.toString(), new BPartnerMapper());
return response;
}
を、私は次の操作を実行したい:
実際のラインと比較したResultSetの前の要素を取得します
@Override
public IWsResponse mapRow(ResultSet rs, int rowNum) throws SQLException {
rs.previous();
int prev_Bpartner_ID = rs.getInt("BPARTNER_ID");
int prev_Location_ID = rs.getInt("BPARTNER_LOCATION_ID");
int prev_User_ID = rs.getInt("User_ID");
rs.next();
int Bpartner_ID = rs.getInt("BPARTNER_ID");
int Location_ID = rs.getInt("BPARTNER_LOCATION_ID");
int User_ID = rs.getInt("User_ID");
// My code
}
私はrs.previous()
にエラーが発生します。
java.sql.SQLException: Invalid operation for forward only resultset : previous
は、どのように私はそれが現在の行のために事前に初期化としてあなたがResultSetにprev()
またはnext()
を呼び出すことはできませんresultSet
'Statement'を作成しているコードを投稿してください – Rehman
' RowMapper'の最初の部分で 'next()'や 'previous()'をしてはいけません。あなたは 'ResultSetExtractor'を使用し、結果を繰り返し処理します(最後のものを保持し、次のものと比較する)。前後に行くのではなく。必要なときには 'JdbcTemplate'も作成してはいけません。パフォーマンス面ではそれほどスマートではありません。 –
あなたのユースケースは何ですか、なぜこの比較を行う必要がありますか? –