gpt4 book ai didi

java - ResultSetMetaData 方法 getTableName 返回空字符串

转载 作者:行者123 更新时间:2023-12-02 10:06:18 26 4
gpt4 key购买 nike

我正在尝试从 PostgreSQL 数据库获取 SQL 查询中涉及的表。但是,getTableName 方法始终返回空字符串。这是我的代码的一部分:

Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost/db?" +
"user=root&password=root&useSSL=false");
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs;
rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
columnsNumber = rsmd.getColumnCount();
if (!rs.next()) {
System.out.println("No records found");

} else {
do {
RowsNumber++;
} while (rs.next());
}




rs.beforeFirst();
for (int j = 0; j <= RowsNumber; j++) {
while (rs.next()) {
for (int i = 1; i <= columnsNumber; i++) {
System.out.println(rsmd.getTableName(i));

}

}

}
conn.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}

最佳答案

您使用的是哪个版本的驱动程序?这可能是 PostreSQL JDBC 驱动程序实现的问题。刚刚查看了 9.1.jdbc4 版本的实现,发现它只是返回一个空字符串。

enter image description here

还有另一种方法可以通过使用 metadata.getColumns(null, "%", tableName, "%");

看看这个例子 here

关于java - ResultSetMetaData 方法 getTableName 返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55319122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com