如何检查ResultSet是否包含特定命名的字段?
有rs
,一个java.sql.ResultSet的实例,如何检查它是否包含一个名为“theColumn”的列?
您可以使用ResultSetMetaData迭代ResultSet列,并查看列名是否与指定的列名匹配。
例:
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!"); } }
尝试使用方法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; }
你可以做:
rs.findColumn("theColum")
并检查SQLException
使用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; }
通过rs.getMetaData()
使用ResultSet对象提供的ResultSet
对象