Czy java.sql.ResultSet
istnieje sposób na uzyskanie nazwy kolumny jako String
za pomocą indeksu kolumny? Przejrzałem dokument API, ale nic nie mogę znaleźć.
233
Możesz uzyskać te informacje z ResultSet
metadanych. Zobacz ResultSetMetaData
na przykład
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
String name = rsmd.getColumnName(1);
i stamtąd możesz uzyskać nazwę kolumny. Jeśli zrobisz
select x as y from table
wtedy rsmd.getColumnLabel()
otrzymasz również nazwę odzyskanej etykiety.
rsmd.getColumnLabel
jeśli pobiera kolumny z etykietami (na przykładSELECT columnName AS ColumnLabel
for (int i = 1; i <= rsmd.getColumnCount(); i++) String name = rsmd.getColumnName(i);
getColumnName()
zwraca oryginalną nazwę kolumny, jeśli nie używaAS
aliasów?AS
nie zostanie określony, wartość zwrócona zgetColumnLabel
będzie taka sama jak wartość zwrócona przezgetColumnName
metodę.” . W prawie wszystkich przypadkach powinieneś użyćgetColumnLabel
zamiastgetColumnName
.Oprócz powyższych odpowiedzi, jeśli pracujesz z zapytaniem dynamicznym i chcesz nazwy kolumn, ale nie wiesz, ile jest kolumn, możesz użyć obiektu ResultSetMetaData, aby najpierw uzyskać liczbę kolumn, a następnie je przełączać .
Zmiana kodu Briana:
źródło
i <= columnCount
.Możesz do tego użyć obiektu ResultSetMetaData ( http://java.sun.com/javase/6/docs/api/java/sql/ResultSetMetaData.html ) w tym celu:
źródło
To pytanie jest stare, podobnie jak poprzednie prawidłowe odpowiedzi. Ale kiedy szukałem tego tematu, szukałem czegoś takiego. Mam nadzieję, że to komuś pomaga.
źródło
Korzystanie z getMetaData ();
EDYCJA: Działa to również z PostgreSQL
źródło
Nazwa tabeli: osoba Pole DataType id VARCHAR cname VARCHAR dob DATE
źródło
Gdy potrzebujesz nazw kolumn, ale nie chcesz pobierać wpisów:
UWAGA: Działa tylko z MySQL
źródło
źródło
Instrukcje SQL odczytujące dane z zapytania do bazy danych zwracają dane w zestawie wyników. Instrukcja SELECT jest standardowym sposobem wybierania wierszy z bazy danych i przeglądania ich w zestawie wyników.
**java.sql.ResultSet**
Interfejs reprezentuje zestaw wyników kwerendy bazy danych.Za pomocą
MetaData of a result set to fetch the exact column count
http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSetMetaData.html
i jeszcze więcej, aby powiązać go z tabelą modelu danych
bardzo fajny samouczek tutaj: http://www.tutorialspoint.com/jdbc/
źródło
@Cyntech ma rację.
Ponieważ twoja tabela jest pusta i nadal musisz uzyskać nazwy kolumn tabeli, możesz uzyskać kolumnę jako typ Vector, zobacz następujące informacje:
źródło
źródło
Jeśli chcesz użyć wiosennego jdbctemplate i nie chcesz zajmować się obsługą połączeń, możesz użyć następujących opcji:
źródło
Możesz uzyskać nazwę i wartość kolumny z resultSet.getMetaData (); Ten kod działa dla mnie:
źródło
Wiem, na to pytanie już udzielono odpowiedzi, ale prawdopodobnie ktoś taki jak ja musi uzyskać dostęp do nazwy kolumny według nazwy
DatabaseMetaData
zamiast indeksu:źródło