2

我目前正在寻找在我的 Java 程序中编写一个导入器来从包含 JET 数据库的文件中导入数据,但到目前为止,我正在寻找这种格式的 JDBC 驱动程序(或者只是另一个可以从中读取的 Java 库)已经证明无果。

有谁知道这样的驱动程序是否存在,或者如果不存在什么(平台无关)替代品可能可用?

4

3 回答 3

2

我实际上一直在使用 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 + "]"; `

于 2013-04-17T18:31:13.237 回答
2

我现在自己正在研究这个,并将尝试UCanAccess。根据主页,它说它是

一种开源 Java JDBC 驱动程序实现,它允许 Java 开发人员和 jdbc 客户端程序(例如,DBeaver、NetBeans、SQLeo、Open Office Base、Libre Office Base、Squirrell)读/写 Microsoft Access 数据库。

因为它是一个纯 java 实现,所以它可以在 Windows 和非 Windows 操作系统(例如 linux/unix)中运行。不需要 ODBC。

于 2015-10-23T12:14:55.273 回答
1

您可以使用内置的JDBC ODBC 桥接驱动程序。使用如下连接字符串:jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=database.mdb。这不是平台独立的。必须安装 Jet 引擎(或 ACE)。有时编码和备注字段会出现问题。

还有一个替代方案:http ://www.hxtt.com/access.html 他们声称平台独立,但我自己没有尝试过。

于 2013-04-17T18:28:15.927 回答