2016-01-18 2 views
1

Как я могу получить значение из ResultSet по имени атрибута?Получить значение из ResultSet по имени

DB-Table (таблица):

name:TEXT | age:INT | gender:INT 

SQL-запросов:

SELECT * FROM table WHERE name='john' 

Выход в java.sql.ResultSet

Как я могу получить переменную имя столбца (имя, возраст, пол)?

+0

Привет и добро пожаловать Итак, добавьте код, который уже три а также ошибки, которые вы получили. Пожалуйста, прочитайте [как спросить] (http://stackoverflow.com/help/how-to-ask) и [mcve] (http://stackoverflow.com/help/mcve), чтобы задать более правильный вопрос в следующий раз. – davejal

+0

Что вы подразумеваете под * каждой отдельной переменной *? Вы хотите получить имена столбцов, такие как 'name',' age', 'gender', или хотите получить значения под этими столбцами, например' 'Frank '' '' '' M? '? – Pshemo

+0

https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html – Pshemo

ответ

1

Вы можете itterate над значениями, как это:

Statement stmt = null; 
    String query = "SELECT * FROM table WHERE name='john'"; 
    try { 
     stmt = con.createStatement(); 
     ResultSet rs = stmt.executeQuery(query); 
     while (rs.next()) { 
      String name= rs.getString("name"); 
      int age= rs.getInt("age"); 
      int gender = rs.getInt("gender"); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     if (stmt != null) { stmt.close(); } 
    } 
+0

ok! Спасибо! ^^ – Shapci

+0

@Shapci Если это было желаемое решение, проголосуйте или согласитесь с ответом, чтобы сообщество могло их рассматривать как решение. –

+0

@JoelGeiser качество вопроса на этом этапе настолько плохое, что трудно извлечь много из ответа - возможно, лучше использовать комментарии, чтобы исправить вопрос в первую очередь. Потому что, если он не будет исправлен, он, скорее всего, все равно будет закрыт. – pvg

2

Использование ResultSetMetaData:

ResultSetMetaData metaData = resultSet.getMetaData(); 

Например:

... 
ResultSet rs = stmt.executeQuery(query); 
    while (rs.next()) { 
     int count = metaData.getColumnCount(); 
     for (int i = 1; i <= count; i++) 
     { 
      String columnName = metaData.getColumnName(i); 
      int type = metaData.getColumnType(i); 
      if (type == Types.VARCHAR || type == Types.CHAR) { 
       out.print(rs.getString(columnName)); 
       String name= rs.getString(columnName); 
      } 
      if (type==Types.INTEGER){ 
       out.print(rs.getInt(columnName)); 
       int age= rs.getInt(columnName); 
      } 
      // .... 
      // save columnName and name 
     } 
    } 
} 

...

Смежные вопросы