我目前正在寻找在我的 Java 程序中编写一个导入器来从包含 JET 数据库的文件中导入数据,但到目前为止,我正在寻找这种格式的 JDBC 驱动程序(或者只是另一个可以从中读取的 Java 库)已经证明无果。
有谁知道这样的驱动程序是否存在,或者如果不存在什么(平台无关)替代品可能可用?
我实际上一直在使用 JDBC 和 jetEngine 查询将 CSV 文件导入 Access 数据库,如下所示
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 将此设置为您机器上的 MS Access DB
String filename = "C:/Automation_Tools/Databases/Data.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= fileName.trim() + ";DriverID=22;READONLY=false}";
// 添加到最后,现在我们可以从 DriverManager 获取连接
con = DriverManager.getConnection( database ,"","");
然后使用这样的查询
String sql = "INSERT INTO " + accessTableName + " SELECT * FROM [Text;HDR=YES;TextDelimiter=\";Has Quotes=TrueFMT=Delimited(,);DATABASE=" + csvDirPath + ";].[" + csvFileName + "]";
//导入/创建表
String sql = "SELECT * INTO " + accessTableName + " FROM [Text;HDR=YES;TextDelimiter=\";FMT=Delimited(,);DATABASE=" + csvDirPath + ";].[" + csvFileName + "]";
`
我现在自己正在研究这个,并将尝试UCanAccess。根据主页,它说它是
一种开源 Java JDBC 驱动程序实现,它允许 Java 开发人员和 jdbc 客户端程序(例如,DBeaver、NetBeans、SQLeo、Open Office Base、Libre Office Base、Squirrell)读/写 Microsoft Access 数据库。
因为它是一个纯 java 实现,所以它可以在 Windows 和非 Windows 操作系统(例如 linux/unix)中运行。不需要 ODBC。
您可以使用内置的JDBC ODBC 桥接驱动程序。使用如下连接字符串:jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=database.mdb
。这不是平台独立的。必须安装 Jet 引擎(或 ACE)。有时编码和备注字段会出现问题。
还有一个替代方案:http ://www.hxtt.com/access.html 他们声称平台独立,但我自己没有尝试过。