给定表的名称,如何使用JDBC知道列的名称?我知道这是使用DatabaseMetaData的东西,欢迎使用例子!
完成问题:
我正在使用HSQLDB并在启动服务器时创建表,而似乎databasemetada无法读取列名。
String tableName = "cities";
DatabaseMetaData metaData = connection.getMetaData();
ResultSet resultSet = metaData.getColumns(null, null, tableName, null);
while(resultSet.next()){
System.out.println(resultSet.getString("COLUMN_NAME"));
}
对象 resultSet.next()将变空。
答案 0 :(得分:2)
您可以尝试使用大写表名:
String tableName = "CITIES";
答案 1 :(得分:0)
你是对的,你将使用DatabaseMetaData对象,然后使用它的getColumns()
方法。例如:
DatabaseMetaData dbm = connection.getMetaData();
ResultSet columns = meta.getColumns(null, "Schema Name", "Table Name", null);
请注意,中间的两个参数分别指定您希望列的哪个架构和哪个表。 (如果为这些参数传递null,则ResultSet将包括数据库中所有模式的所有表中的所有列。
答案 2 :(得分:0)
ResultSet
对象rs ResultSetMetaData
对象:ResultSetMetaData rsd = rs.getMetaData()
获取列数:
int columnCount = rsd.getColumnCount();
for(int i = 1; i <= columnCount; i++) {
System.out.println(rss.getColumnName(i));
}