Java resultset rowmapper
Frage
package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.krams.tutorial.oxm.SubscriptionRequest;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
public class MyMapper implements RowMapper<SubscriptionRequest> {
public SubscriptionRequest mapRow(ResultSet rs, int rowNum) throws SQLException {
SubscriptionRequest subscription = new SubscriptionRequest();
subscription.setId(rs.getInt(1));
subscription.setCity(rs.getString(2));
return subscription;
}
}
Dies ist im Moment meine Klasse, es ist ein Mapper für meine 1 -Tabelle
Wie kann ich dieselbe Mapper -Klasse für andere Datenbanktabellen verwenden? Oder für jede Tabelle muss ich eine neue Mapper -Klasse erstellen?
Lösung
Da Ihr RowMapper keinen Zustand enthält, kann dieselbe Instanz dieser Klasse für jede Tabelle/Auswahl verwendet werden. Die einzige Frage ist, ob diese Tabellen/Auswahl in das Abonnement -Objekt konvertiert werden können und die Spalte für die erste int- und zweite Zeichenfolge enthalten.
Wenn nicht, müssen Sie für jedes Objekt, das Sie generieren möchten, einen neuen RowMapper erstellen. Oder verwenden Sie einen "generischen" Zeilen -Mapper, der eine Karte aus jeder Zeile anstelle eines konkreten Objekts erzeugt.