从java.sql.ResultSet中检索列名

从java.sql.ResultSet中检索列名

java.sql.ResultSet没有办法String通过使用列的索引获取列的名称?我查看了API文档但我找不到任何东西。



HUH函数
浏览 848回答 3
3回答

冉冉说

您可以从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()也会得到检索到的标签名称。

肥皂起泡泡

除了上面的答案,如果您正在使用动态查询并且您想要列名但不知道有多少列,则可以使用ResultSetMetaData对象首先获取列数,然后循环它们。修改Brian的代码:ResultSet&nbsp;rs&nbsp;=&nbsp;stmt.executeQuery("SELECT&nbsp;a,&nbsp;b,&nbsp;c&nbsp;FROM&nbsp;TABLE2");ResultSetMetaData&nbsp;rsmd&nbsp;=&nbsp;rs.getMetaData();int&nbsp;columnCount&nbsp;=&nbsp;rsmd.getColumnCount();//&nbsp;The&nbsp;column&nbsp;count&nbsp;starts&nbsp;from&nbsp;1for&nbsp;(int&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;<=&nbsp;columnCount;&nbsp;i++&nbsp;)&nbsp;{ &nbsp;&nbsp;String&nbsp;name&nbsp;=&nbsp;rsmd.getColumnName(i); &nbsp;&nbsp;//&nbsp;Do&nbsp;stuff&nbsp;with&nbsp;name}

哆啦的时光机

这个问题很老,以前的答案也是正确的。但是当我发现这个话题时我正在寻找的就像这个解决方案。希望它可以帮助某人。//&nbsp;Loading&nbsp;required&nbsp;libraries&nbsp;&nbsp;&nbsp;&nbsp;import&nbsp;java.util.*;import&nbsp;java.sql.*;public&nbsp;class&nbsp;MySQLExample&nbsp;{ &nbsp;&nbsp;public&nbsp;void&nbsp;run(String&nbsp;sql)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;JDBC&nbsp;driver&nbsp;name&nbsp;and&nbsp;database&nbsp;URL &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;JDBC_DRIVER&nbsp;=&nbsp;"com.mysql.jdbc.Driver"; &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;DB_URL&nbsp;=&nbsp;"jdbc:mysql://localhost/demo"; &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Database&nbsp;credentials &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;USER&nbsp;=&nbsp;"someuser";&nbsp;//&nbsp;Fake&nbsp;of&nbsp;course. &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;PASS&nbsp;=&nbsp;"somepass";&nbsp;//&nbsp;This&nbsp;too! &nbsp;&nbsp;&nbsp;&nbsp;Statement&nbsp;stmt&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;Vector<String>&nbsp;columnNames&nbsp;=&nbsp;new&nbsp;Vector<String>(); &nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Register&nbsp;JDBC&nbsp;driver &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(JDBC_DRIVER); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Open&nbsp;a&nbsp;connection &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn&nbsp;=&nbsp;DriverManager.getConnection(DB_URL,&nbsp;USER,&nbsp;PASS); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Execute&nbsp;SQL&nbsp;query &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt&nbsp;=&nbsp;conn.createStatement(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs&nbsp;=&nbsp;stmt.executeQuery(sql); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(rs&nbsp;!=&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSetMetaData&nbsp;columns&nbsp;=&nbsp;rs.getMetaData(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(i&nbsp;<&nbsp;columns.getColumnCount())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(columns.getColumnName(i)&nbsp;+&nbsp;"\t"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;columnNames.add(columns.getColumnName(i)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("\n"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(rs.next())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;columnNames.size();&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(rs.getString(columnNames.get(i)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;"\t"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("\n"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Exception:&nbsp;"&nbsp;+&nbsp;e.toString()); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;finally&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(rs&nbsp;!=&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.close(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(stmt&nbsp;!=&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.close(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(conn&nbsp;!=&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;mysqlEx)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(mysqlEx.toString()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java