Comment fonctionne exactement queryForMap() et queryForList() les méthodes fournies par le Printemps JdbcTemplate de travail à l'interne?

Je suis des études pour le Ressort de la certification et j'ai quelques doute liée à l'utilisation de la JdbcTemplate utilisation.

Je sais que JdbcTemplate me donne méthodes différentes pour effectuer des requêtes (qui sont écrites en SQL).

J'ai donc l'une des méthodes suivantes:

1) queryForObject():

public long getPersonCount() {
    String sql = select count(*) from PERSON”;
    return jdbcTemplate.queryForObject(sql, Long.class);
}

Donc dans cette méthode, je spécifiez 2 paramètres qui représentent respectivement l'instruction SQL et de la classe type de l'objet retourné. Dans le cas précédent, il est précisé que le résultat de la requête est renvoyée dans un Long objet.

Ce qui se passe si le résultat retourné par la requête ne correspond pas avec le type spécifié? (par exemple, si la requête retourne une Chaîne de caractères et j'ai spécifié une Longue comme paramètre de la queryForObject() la méthode? Comment sont des situations de ce genre sont-elles traitées?

2) queryForMap():

public Map getPersonInfo(int id) {
    String sql = select * from PERSON where id=?”;
    return jdbcTemplate.queryForMap(sql, id);
}

La lecture de la documentation, il me semble que c'est utilisé seulement quand il est connu que ma requête renvoie une seule ligne. Est-il correct?

Alors maintenant j'ai un doute concernant l'utilisation de la queryForMap() méthode.

Je sais que le Carte interface de magasins des objets à l'aide système.

Donc un Carte est pensé pour stocker plusieurs couples. Donc, je pense que cela pourrait stocker plusieurs lignes: la légende de la Carte est la clé d'une ligne de mon tableau et la valeur contient les valeurs des autres colonnes (dans un objet).

Mais il semble que la logique de la queryForMap() méthode est assez différente. Comment ça fonctionne exactement?

Peut-être qu'il retourne une Carte qui fonctionne de cette manière:

clé: contient la clé de la clé primaire de la table et avec cette clé sont associés plusieurs valeurs associées au contenu des autres champs de ma table. Ou quoi?

3) queryForList():

public List getAllPersonInfo() {
    String sql = select * from PERSON”;
    return jdbcTemplate.queryForList(sql);
}

La lecture de la documentation, il me semble qu'il est utilisé quand je pense que ma requête renvoie plusieurs lignes. Et il me semble que la sortie de la méthode est un Liste de Carte (donc selon la méthode précédente de chaque Carte représente une seule ligne retournée** (mais la précédente doute sur la façon dont une ligne est stockée dans une Carte persiste).

Pouvez-vous m'aider à comprendre profondément la façon dont ces méthodes tel travail?

Tnx

OriginalL'auteur | 2014-12-14