Con java.sql.ResultSet
decir que hay una manera de obtener el nombre de una columna como String
utilizando el índice de la columna? Eché un vistazo al documento de API pero no puedo encontrar nada.
233
Puede obtener esta información de los ResultSet
metadatos. Ver ResultSetMetaData
p.ej
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
String name = rsmd.getColumnName(1);
y puedes obtener el nombre de la columna desde allí. Si lo haces
select x as y from table
entonces rsmd.getColumnLabel()
también obtendrá el nombre de la etiqueta recuperada.
rsmd.getColumnLabel
si recupera columnas con etiquetas (por ejemploSELECT columnName AS ColumnLabel
for (int i = 1; i <= rsmd.getColumnCount(); i++) String name = rsmd.getColumnName(i);
getColumnName()
Devuelve el nombre original de la columna si no usa elAS
nombre de alias?AS
no se especifica un SQL , el valor devuelto porgetColumnLabel
será el mismo que elgetColumnName
método devuelto ". . En casi todos los casos, debe usar engetColumnLabel
lugar degetColumnName
.Además de las respuestas anteriores, si está trabajando con una consulta dinámica y desea los nombres de columna pero no sabe cuántas columnas hay, puede usar el objeto ResultSetMetaData para obtener primero el número de columnas y luego recorrerlas. .
Modificando el código de Brian:
fuente
i <= columnCount
.Puede usar el objeto ResultSetMetaData ( http://java.sun.com/javase/6/docs/api/java/sql/ResultSetMetaData.html ) para eso, así:
fuente
Esta pregunta es antigua y también lo son las respuestas anteriores correctas. Pero lo que estaba buscando cuando encontré este tema fue algo así como esta solución. Esperemos que ayude a alguien.
fuente
Usando getMetaData ();
EDITAR: Esto también funciona con PostgreSQL
fuente
Nombre de la tabla: persona Campo Tipo de datos id VARCHAR cname VARCHAR dob DATE
fuente
Cuando necesita los nombres de columna, pero no desea obtener entradas:
NOTA: solo funciona con MySQL
fuente
fuente
Las instrucciones SQL que leen datos de una consulta de base de datos devuelven los datos en un conjunto de resultados. La instrucción SELECT es la forma estándar de seleccionar filas de una base de datos y verlas en un conjunto de resultados. La
**java.sql.ResultSet**
interfaz representa el conjunto de resultados de una consulta de base de datos.Utilizando
MetaData of a result set to fetch the exact column count
http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSetMetaData.html
y aún más para vincularlo a la tabla del modelo de datos
muy buen tutorial aquí: http://www.tutorialspoint.com/jdbc/
fuente
@Cyntech tiene razón.
En caso de que su tabla esté vacía y aún necesite obtener los nombres de columna de la tabla, puede obtener su columna como tipo Vector, consulte lo siguiente:
fuente
fuente
Si desea usar spring jdbctemplate y no quiere tratar con el personal de conexión, puede usar lo siguiente:
fuente
U puede obtener el nombre y el valor de la columna de resultSet.getMetaData (); Este código funciona para mí:
fuente
Lo sé, esta pregunta ya está respondida, pero probablemente alguien como yo necesita acceder a un nombre de columna
DatabaseMetaData
por etiqueta en lugar de índice:fuente