78 votes

Comment puis-je déterminer si le nom de colonne existe dans le ResultSet ?

Comme le contient les données retournées par le SQL dynamique, existe-t-il une méthode pour déterminer si le contient un nom de colonne particulier ?

Par exemple , si je cours mais n’existe pas vraiment, il va jeter l’exception.

Comment puis-je tester si le peut obtenir des données à partir d’une colonne nommée ?

122voto

Erick Robertson Points 12958

Utilisez la `` classe.

Ce que je ne comprends pas, c’est pourquoi cette fonction serait jamais nécessaire. La requête ou la procédure stockée en cours d’exécution doit avoir des résultats connus. Les colonnes de la requête doivent être connues. Avoir besoin d’une fonction comme celle-ci peut être un signe qu’il y a un problème de conception quelque part.

14voto

Talick Points 139
private boolean isThere(ResultSet rs, String column){
    try{
        rs.findColumn(column);
        return true;
    } catch (SQLException sqlex){
        logger.debug("column doesn't exist {}", column);
    }

    return false;
}

6voto

Zip184 Points 602

Je ne sais pas si c’est plus ou moins efficace que la réponse d’Erick, mais c’est plus facile.

-2voto

resultSet.getColumnMetaData().contains(columnName)

-4voto

VivekJ Points 39
<pre><code></code><p>Dans la version java >=7, vous avez la possibilité de passer le type class dans la méthode ResultSet#getObject</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X