gpt4 book ai didi

java - 列出数据库中的表

转载 作者:行者123 更新时间:2023-11-30 07:58:36 24 4
gpt4 key购买 nike

尝试获取 .accdb 数据库中所有表的列表(2007-2016 格式)。似乎无法找到 MSysObjects 表。使用 UCanAccess

sql = "SELECT Name FROM MSysObjects WHERE Type = 1 AND Flags = 0";
ResultSet rs = queryChem(sql);

public static ResultSet queryChem(String sql) throws SQLException {
Statement sChem = connChem.createStatement();
ResultSet rsChem = sChem.executeQuery(sql);
return rsChem;
}

private static void connectChem() {
try {

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
System.out.println("Driver loaded");

String url = "jdbc:ucanaccess://chemdb.accdb";
connChem = DriverManager.getConnection(url);
System.out.println("Database Connected - CHEMS");

} catch (Exception ex) {
System.out.println("Error");
}
}

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 用户缺少权限或找不到对象:MSYSOBJECTS 在 net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:211)

最佳答案

您不需要 Access [MSysObjects] 表。您可以通过 DatabaseMetaData#g​​etTables 方法获取表格列表,例如,

try (ResultSet rsMD = connChem.getMetaData().getTables(null, null, null, null)) {
while (rsMD.next()) {
String tblName = rsMD.getString("TABLE_NAME");
System.out.println(tblName);
}
}

关于java - 列出数据库中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40329914/

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