我目前正在寻找在我的Java程序中编写一个导入程序来从包含JET数据库的文件导入数据,但到目前为止还在搜索这种格式的JDBC驱动程序(或者只是另一个可以从中读取的Java库)已经证明没有结果。
是否有人知道这样的驱动程序是否存在,或者是否存在(平台无关的)替代品可用?
答案 0 :(得分: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 + "]";
`
答案 1 :(得分:2)
我现在正在研究这个问题,我将尝试UCanAccess。据主页说它是
开源Java JDBC驱动程序实现,允许Java开发人员和jdbc客户端程序(例如,DBeaver,NetBeans,SQLeo,Open Office Base,Libre Office Base,Squirrell)读取/写入Microsoft Access数据库。
因为它是纯Java实现,所以它在Windows和非Windows操作系统(例如,linux / unix)中运行。 无需ODBC。
答案 2 :(得分:1)
您可以使用内置的JDBC ODBC bridge驱动程序。
使用类似于jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=database.mdb
的连接字符串。
这不是独立平台。必须安装Jet引擎(或ACE)。有时编码和备注字段存在问题。
还有另一种选择:http://www.hxtt.com/access.html 他们声称平台独立,但我自己没有尝试过。