Au printemps Rowmapper , mapRow
J'ai quelques questions à propos de Printemps rowmapper. Je vais recevoir des données de ma bd à l'aide des rowmapper.Mais mon objet de commande "Table" seulement avoir la Liste des variables.
est Rowmapper automatiquement la carte chaque enregistrement de la Liste ? est-il posibble?
je sais que le printemps lier l'étiquette est automatiquement lier la valeur de la liste.
droit cette.
Table.java
public class Table implements Serializable{
private List<String> tableNum = new ArrayList<String>();
//setter and getter
}
Dao
private class TableRowMapper implements RowMapper {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Table table = new Table();
table.setTableNum(rs.getString("TABLE_LOCATION"));
return table;
}
}
Vous devez vous connecter pour publier un commentaire.
La
RowMapper
est utilisé pour mapper une seule ligne à un seul domaine d'objet, n'est pas un tas de lignes de résultats à un seul domaine de l'objet. Aussi laRowMapper
n'est pas un Dao type d'objet. Il doit être utilisé avec une méthode de requête, commeJdbcTemplate.query(sql,args,rowMapper)
Mais dans votre cas, vous ne voulez pas un
RowMapper
. En revanche, vous pouvez tout simplement utiliser unJdbcTemplate.queryForList
. Voir laJdbcTemplate
API pour plus de méthode de requête. Un exemple simple serait quelque chose comme:Vous utilisez le dao pour vos services.
Mise à JOUR
Vous avez posté la question dans aucun des points que. Dans ce cas, vous avez besoin de faire un
List<DomainObject>
. Pas unList<String>
.List<String>
ne permet qu'une seule valeur. Si vous avez unList<DomainObject>
, la classeDomainObject
pouvez avoir tous vos champs. Puis c'est lorsque vous utilisez leRowMapper
. Et vous pouvez toujours utiliserqueryForList
qui utilise leRowMapper
varianteUn côté, si j'étais vous, je voudrais oublier le jdbc et aller pour un ORM comme JPA. Si vous voulez l'ensemble des objets du domaine, c'est le chemin à parcourir.