我正在使用java创建.mdb文件,因为我正在使用MS-ACCESS数据库文件。但我面临一个问题。假设使用新文件(“file.mdb”)创建了一个名为file.mdb的文件.createNewFile();.毫无疑问,它会成功创建文件,但是当我尝试打开它时,它会显示无法识别的文件。你能救我吗?
如果您不了解此解决方案,请告诉我有关创建数据库文件的任何其他数据库的知识(例如oracle不创建数据库文件),以便我可以通过java创建该文件并访问它。
答案 0 :(得分:0)
正如您所发现的,new File("file.mdb").createNewFile();
创建了一个零长度文件,这不是一个有效的Access数据库文件。即使是一个空的" Access数据库包含系统表和其他所需信息。
如果您使用的是UCanAccess JDBC驱动程序,那么只需执行以下操作即可自动创建数据库(如果数据库尚不存在):
String connStr = "jdbc:ucanaccess://C:/path/to/file.mdb;newdatabaseversion=V2003";
try (Connection conn = DriverManager.getConnection(connStr)) {
// ... do stuff here
}
有关如何设置UCanAccess的更多信息,请参阅
Manipulating an Access database from Java without ODBC
另一方面,如果您绝对需要坚持使用JDBC-ODBC Bridge(已过时且已从Java 8中删除),那么您可能需要使用类似于第二个示例的ADOX代码。我的相关答案here。