С java.sql.ResultSet
есть способ получить имя столбца в виде String
, используя индекс столбца? Я просмотрел документацию по API, но ничего не могу найти.
234
Вы можете получить эту информацию из ResultSet
метаданных. Смотрите ResultSetMetaData
например
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
String name = rsmd.getColumnName(1);
и вы можете получить имя столбца оттуда. Если вы делаете
select x as y from table
Затем rsmd.getColumnLabel()
вы получите имя полученного ярлыка.
rsmd.getColumnLabel
если вы получаете столбцы с метками (напримерSELECT columnName AS ColumnLabel
for (int i = 1; i <= rsmd.getColumnCount(); i++) String name = rsmd.getColumnName(i);
getColumnName()
Возвращает ли исходное имя столбца, если не используетAS
псевдоним?AS
не указан, возвращаемое значениеgetColumnLabel
будет таким же, как и значение, возвращаемоеgetColumnName
методом». , Почти во всех случаях вы должны использоватьgetColumnLabel
вместоgetColumnName
.В дополнение к вышеприведенным ответам, если вы работаете с динамическим запросом и хотите получить имена столбцов, но не знаете, сколько их столбцов, вы можете использовать объект ResultSetMetaData, чтобы сначала получить количество столбцов, а затем циклически их перебирать. ,
Изменяя код Брайана:
источник
i <= columnCount
.Для этого вы можете использовать объект ResultSetMetaData ( http://java.sun.com/javase/6/docs/api/java/sql/ResultSetMetaData.html ), например:
источник
Этот вопрос старый и поэтому правильные предыдущие ответы. Но то, что я искал, когда нашел эту тему, было чем-то вроде этого решения. Надеюсь, это кому-нибудь поможет.
источник
Использование getMetaData ();
РЕДАКТИРОВАТЬ: Это работает с PostgreSQL, а также
источник
Имя таблицы: person Поле DataType id VARCHAR cname VARCHAR dob DATE
источник
Когда вам нужны имена столбцов, но вы не хотите получать записи:
ПРИМЕЧАНИЕ: работает только с MySQL
источник
источник
Операторы SQL, которые читают данные из запроса к базе данных, возвращают данные в наборе результатов. Оператор SELECT является стандартным способом выбора строк из базы данных и просмотра их в наборе результатов.
**java.sql.ResultSet**
Интерфейс представляет собой набор результатов запроса к базе данных.С помощью
MetaData of a result set to fetch the exact column count
http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSetMetaData.html
и еще больше привязать его к таблице модели данных
очень хороший учебник здесь: http://www.tutorialspoint.com/jdbc/
источник
@ Cyntech прав.
Если ваша таблица пуста и вам все еще нужно получить имена столбцов таблицы, вы можете получить столбец типа Vector, см. Следующее:
источник
источник
Если вы хотите использовать Spring jdbctemplate и не хотите иметь дело с персоналом связи, вы можете использовать следующее:
источник
Вы можете получить имя и значение столбца из resultSet.getMetaData (); Этот код работает для меня:
источник
Я знаю, на этот вопрос уже дан ответ, но, возможно, кому-то, как я, нужен доступ к имени столбца
DatabaseMetaData
по метке, а не по индексу:источник