-1

给定一个表的名称,如何使用 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()为空。

4

3 回答 3

2

您可以尝试大写表名:

String tableName = "CITIES";
于 2013-05-29T03:33:58.650 回答
0
  1. 执行查询,获取ResultSetObject rs
  2. 获取ResultSetMetaData对象:ResultSetMetaData rsd = rs.getMetaData()
  3. 获取列数:

    int columnCount = rsd.getColumnCount();  
    for(int i = 1; i <= columnCount; i++) {  
        System.out.println(rss.getColumnName(i));  
    }
    
于 2013-05-29T02:08:28.400 回答
0

你是对的,你将使用一个 DatabaseMetaData 对象,然后使用它的getColumns()方法。例如:

DatabaseMetaData dbm = connection.getMetaData();
ResultSet columns = meta.getColumns(null, "Schema Name", "Table Name", null);

请注意,中间的两个参数分别指定您想要列的模式和表。(如果您为这些参数传递 null,您的 ResultSet 将包括数据库上所有模式的所有表中的所有列。

于 2013-05-29T02:02:48.713 回答