如何使用JDBC知道列的名称?

时间:2013-05-29 01:59:22

标签: java jdbc database-metadata

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

3 个答案:

答案 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)

  1. 执行查询,获取ResultSet对象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));  
    }