Ayant rs
, une instance de Java.sql.ResultSet, comment vérifier qu'elle contient une colonne nommée "theColumn"?
Vous pouvez utiliser ResultSetMetaData pour parcourir les colonnes ResultSet et voir si le nom de la colonne correspond au nom de la colonne que vous avez spécifiée.
Exemple:
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
// get the column names; column indexes start from 1
for (int i = 1; i < numberOfColumns + 1; i++) {
String columnName = rsMetaData.getColumnName(i);
// Get the name of the column's table name
if ("theColumn".equals(columnName)) {
System.out.println("Bingo!");
}
}
Essayez d’utiliser la méthode ResultSet # findColumn (String)
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;
}
Tu peux faire:
rs.findColumn("theColum")
et vérifiez SQLException
Utilisez la classe ResultSetMetaData
.
public static boolean hasColumn(ResultSet rs, String columnName) throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
int columns = rsmd.getColumnCount();
for (int x = 1; x <= columns; x++) {
if (columnName.equals(rsmd.getColumnName(x))) {
return true;
}
}
return false;
}
Utilisez l'objet ResultSetMetaData fourni par l'objet ResultSet
via rs.getMetaData()