Ich habe diese Anfrage:Spring: vorherige Zeile in jdbc Vorlage
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;
}
im BPartnerMapper
, ich folgendes tun:
erhalten die bisherigen Elemente im ResultSet vergleichen es mit der tatsächlichen Linie
@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
}
ich erhalte den Fehler in rs.previous()
:
wie kann ich beheben, dass die previous
Elemente resultSet
Geben Sie den Code ein, in dem Sie das 'Statement' erstellen – Rehman
Sie sollten' next() 'oder' previous() 'nicht an erster Stelle in einem' RowMapper' ausführen. Sie sollten einen 'ResultSetExtractor' verwenden und einfach über die Ergebnisse iterieren (behalten Sie den letzten und vergleichen Sie ihn mit dem nächsten). Anstatt vorwärts und rückwärts zu gehen. Sie sollten auch nicht jedes Mal ein 'JdbcTemplate' erstellen, wenn Sie ein solches benötigen. Dies ist nicht sehr intelligent, da es sich um ein schweres Objekt handelt. –
Was ist Ihr Anwendungsfall, warum müssen Sie diesen Vergleich durchführen? –