Java 15/17 JRE环境下连接64位MS Access 2016+的可行方案问询
Java 15/17 连接64位Access 2016+ 可行方案
- 方案1:64位Access数据库引擎+第三方JDBC-ODBC桥
Java 8之后官方移除了内置JDBC-ODBC桥,可使用第三方维护的、适配Java 11+的JDBC-ODBC桥实现完成连接
操作流程:- 卸载设备上旧版Access数据库引擎,安装64位的Microsoft Access Database Engine 2016 可再发行组件,该版本原生支持Access 2016新格式与BigInteger字段
- 打开Windows 64位ODBC数据源管理器,新建系统DSN,选择
Microsoft Access Driver (*.mdb, *.accdb)驱动,关联目标Access数据库文件完成配置 - 项目引入第三方JDBC-ODBC桥依赖后,通过如下代码建立连接:
// 替换为你配置的DSN名称 Connection conn = DriverManager.getConnection("jdbc:odbc:自定义DSN名称"); - 方案2:使用纯Java实现的Jackcess类库直接读写Access文件
Jackcess无需依赖ODBC驱动,最新稳定版已兼容Access 2016+的accdb格式和BigInteger字段,适配Java 15/17运行环境,操作更轻量化。
操作流程:- 项目引入Jackcess及其相关依赖包
- 直接通过文件路径读写数据库,示例代码如下:
// 替换为你的Access文件路径 Database db = DatabaseBuilder.open(new File("C:/xxx/xxx.accdb")); Table targetTable = db.getTable("你的业务表名"); - 方案3:C#适配64位Access驱动方案
不存在C#仅支持32位驱动的限制,仅需修改项目配置:将生成选项中的平台目标从x86/Any CPU修改为x64,即可直接调用64位ACE OLEDB Provider连接Access 2016数据库。
内容的提问来源于stack exchange,提问作者Randall S. Becker
相关产品推荐
相关产品推荐

