1
我正在嘗試這種方法:How can I get table names from an MS Access Database?等,但它什麼也沒做。此外,發生錯誤說我沒有閱讀MSYSOBJECTS的權限。使用Java從Access 2.0女士獲取表名列表
通過使用Java,如何從Access 2.0女士獲取表名列表?
我需要這個,因爲我不允許他們改變數據庫格式和版本本身。
我正在嘗試這種方法:How can I get table names from an MS Access Database?等,但它什麼也沒做。此外,發生錯誤說我沒有閱讀MSYSOBJECTS的權限。使用Java從Access 2.0女士獲取表名列表
通過使用Java,如何從Access 2.0女士獲取表名列表?
我需要這個,因爲我不允許他們改變數據庫格式和版本本身。
從MadProgrammer的評論信息(非常感謝),終於找到了解決方案。所以我使用這段代碼
Connection conn;
String fileName = "C:/folder/AccessDB.mdb";
String dbString = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+fileName+";";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(dbString, "", "");
DatabaseMetaData md = conn.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
String temp;
while (rs.next()) {
temp = rs.getString(3);
if(!temp.contains("MSys")) {
System.out.println(temp);
}
}
}
catch(ClassNotFoundException|SQLException e) {
e.printStackTrace();
}
每個數據庫都有點不同,但看看[這個例子](http://stackoverflow.com/questions/2780284/how-to-get-all- table-names-from-a-database)以及可能的[這個例子](http://stackoverflow.com/questions/9288966/delete-table-if-exists-in-microsoft-access/9289395#9289395)。 .. – MadProgrammer
請複製並粘貼您的工作代碼以創建此問題的答案。 (關於堆棧溢出,用戶回答他/她自己的問題是完全可以接受的。) –
好的,我已經修復了它。放置Class.forName和DriverManager時出錯。它應該抓住試試看 – poring91