Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列出数据库中的表_Java_Sql_Ms Access_Jdbc_Ucanaccess - Fatal编程技术网

Java 列出数据库中的表

Java 列出数据库中的表,java,sql,ms-access,jdbc,ucanaccess,Java,Sql,Ms Access,Jdbc,Ucanaccess,正在尝试获取.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 sC

正在尝试获取.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)

无需点击[MSysObjects]表。您可以通过
DatabaseMetaData#getTables
方法获取表列表,例如

try(ResultSet rsMD=connChem.getMetaData().getTables(null,null,null,null)){
while(rsMD.next()){
String tblName=rsMD.getString(“表名称”);
System.out.println(tblName);
}
}

感谢工作的确切代码是rs=connChem.getMetaData().getTables(null,null,“%”,null);while(rs.next()){String id=rs.getString(3);}