我正在尝试使用ucanaccess(4.0.2)jar访问MS Access 2016(.accdb)文件,代码如下:
public class Test {
static String path ="*****/src/main/resources/TestDatabase.accdb"; //absolute path to my access file
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn = DriverManager.getConnection("jdbc:ucanaccess://"+path);
}
我得到以下异常:
Exception in thread "main" net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.2 Unsupported newer version: 5
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:264)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at db.Test.main(Test.java:29)
Caused by: java.io.IOException: Unsupported newer version: 5
at com.healthmarketscience.jackcess.impl.JetFormat.getFormat(JetFormat.java:293)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.<init>(DatabaseImpl.java:517)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:400)
at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:252)
at net.ucanaccess.jdbc.DefaultJackcessOpener.open(DefaultJackcessOpener.java:35)
at net.ucanaccess.jdbc.DBReference.<init>(DBReference.java:161)
at net.ucanaccess.jdbc.DBReferenceSingleton.loadReference(DBReferenceSingleton.java:51)
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:98)
... 3 more
Maven Dependencies使用:
任何帮助,将不胜感激。
谢谢。
Jackcess将支持2.1.10版本中的Access 2016数据库(更改当前处于主干,但尚未发布)。
它在我的情况下工作:)