以下のようにすると特定の名前のカラムがあるかどうかを判定出来る。
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!"); } }
こういう感じでカラムの型もわかる。
private static Integer getColumnType(ResultSet rs, String columnName) throws SQLException { ResultSetMetaData rsMetaData = rs.getMetaData(); int numberOfColumns = rsMetaData.getColumnCount(); for (int i = 1; i < numberOfColumns + 1; i++) { String name = rsMetaData.getColumnName(i); rsMetaData.getColumnType(i); // Get the name of the column's table name if (columnName.equals(name)) { return rsMetaData.getColumnType(i); } } return null; }
参考: