当前位置: 首页 > news >正文

Java 应用程序中读取和写入 Microsoft Access 数据库(包括 .mdb 和 .accdb 格式)的开源库

com.healthmarketscience.jackcess 是一个用于在 Java 应用程序中读取和写入 Microsoft Access 数据库(包括 .mdb.accdb 格式)的开源库。它不依赖于 Microsoft Office 或任何本地驱动程序,提供纯 Java 实现,便于集成到跨平台应用中。

主要功能与特性

  • 跨平台支持:可在任何支持 Java 的操作系统上运行,无需安装 Access 或 ODBC 驱动。
  • 支持版本广泛:兼容从 Access 2000 到 Access 2019 的数据库文件格式。
  • 无 GUI:作为一个底层工具库,专注于程序化操作,不提供图形界面。
  • 灵活的数据操作:支持读取、写入、创建表、修改结构等操作,并可通过自定义过滤器控制数据导出。
  • 开源协议:遵循 Apache License 2.0,可免费用于商业和非商业项目。

核心类与使用示例

  1. 打开数据库
    使用 DatabaseBuilder 打开或创建数据库文件:
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import java.io.File;try (Database db = DatabaseBuilder.open(new File("path/to/your/database.accdb"))) {// 数据库操作在此处进行
} catch (IOException e) {e.printStackTrace();
}
  1. 读取表数据
    通过 Table 对象遍历记录:
import com.healthmarketscience.jackcess.Table;
import com.healthmarketscience.jackcess.Row;Table table = db.getTable("TableName");
for (Row row : table) {System.out.println("ID: " + row.get("ID") + ", Name: " + row.get("Name"));
}
  1. 写入数据
    向表中添加新行:
Object[] rowData = {1, "Alice", 25};
table.addRow(rowData);
  1. 创建新表
    使用 ColumnBuilder 定义字段结构:
import com.healthmarketscience.jackcess.ColumnBuilder;
import com.healthmarketscience.jackcess.SqlType;Table newTable = db.createTable("NewTable",ColumnBuilder.UUID("id"),ColumnBuilder.text("name", 255),ColumnBuilder.number("age", SqlType.INTEGER)
);
  1. 导出特定列(自定义过滤)
    通过继承 SimpleExportFilter 实现列筛选:
import com.healthmarketscience.jackcess.Column;
import com.healthmarketscience.jackcess.util.ExportFilter;
import com.healthmarketscience.jackcess.util.ExportUtil;
import java.util.ArrayList;
import java.util.List;ExportFilter filter = new ExportFilter() {private List<Column> cols = new ArrayList<>();private int idx = 0;@Overridepublic List<Column> filterColumns(List<Column> columns) {for (Column col : columns) {if (idx++ < 3) cols.add(col); // 只导出前3列}return cols;}
};ExportUtil.exportFile(db, "TableName", new File("output.csv"), true, ",", filter);

Maven 依赖配置

pom.xml 中添加以下依赖(推荐使用最新稳定版,如 3.0.1):

<dependency><groupId>com.healthmarketscience.jackcess</groupId><artifactId>jackcess</artifactId><version>3.0.1</version>
</dependency>

注意:部分旧版本可能依赖 commons-lang,而新版本(如 3.x)已迁移到 commons-lang3,请确保依赖兼容性。

注意事项

  • 表名和字段名区分大小写,需与 Access 中实际名称完全一致。
  • 对于加密的 Access 数据库(如密码保护),需额外引入 jackcess-encrypt 依赖。
  • 建议使用 try-with-resources 语句自动关闭数据库连接,避免资源泄漏。

该库是 Java 开发中处理 Access 数据库的主流选择,尤其适用于需要在无 Office 环境下进行数据迁移、ETL 或系统集成的场景。

http://www.jsqmd.com/news/369947/

相关文章:

  • 智能雨刷器的设计
  • 2026 最新卤味代加工服务商 / 厂家 TOP5 评测!全场景适配+资质实证权威榜单发布,赋能休闲食品品牌布局 - 品牌推荐2026
  • Java遍历
  • 智能优化算法在交通规划中的应用
  • 小白必看:杉德斯玛特卡回收的注意事项及操作建议 - 团团收购物卡回收
  • 2026年水文监测系统厂家推荐:山东竞道光电科技,全系水文监测设备及在线系统供应 - 品牌推荐官
  • 闲置购物卡这样回收,盒马鲜生购物卡也能快速变现! - 团团收购物卡回收
  • 核心系统“去 Oracle”实战:如何实现 20 万行 PL/SQL 的无感迁移?
  • 智能语音垃圾桶
  • 2026年冷轧带钢厂家推荐:玉田县奥丰金属制品有限公司,多品类高精度带钢专业供应 - 品牌推荐官
  • 2026年新型装饰材料公司推荐:江苏亿森美新材料科技,冰火吸音板/防火板等全系产品详解 - 品牌推荐官
  • 2026 最新猪脚 / 卤猪蹄零食 TOP5 评测!场景适配+品质实证权威榜单发布,满足露营追剧等多元休闲需求 - 品牌推荐2026
  • 2026 最新麻辣零食品牌 TOP5 评测!全场景适配+品质实证权威榜单发布,解馋新选重构休闲零食生态 - 品牌推荐2026
  • 2026年性价比高的复古门窗供应商排名,唐潮门窗榜上有名 - 工业设备
  • python随笔
  • 2026年美术艺考培训实力推荐:郑州八一画室专注美术高考,助力学子圆梦名校 - 品牌推荐官
  • 别再折腾 MongoDB+关系库双架构了:尝试用多模数据库解决 JSON 存储与强一致性需求
  • Git操作备忘与原理记录
  • 2026年度术后蛋白粉产品推荐榜单:科学配比与临床价值双维度综合评估 - 十大品牌推荐
  • 国内有实力的立式远程射流机组厂商在哪?2026热门排行来了,恒温恒湿直膨式空调机组/间歇式动力模块,射流机组制造企业推荐 - 品牌推荐师
  • 核心系统国产化迁移:如何攻克 Oracle PL/SQL 兼容性“深水区”?
  • 分析南宁靠谱的门店引流渠道,高性价比的门店引流方法大盘点 - myqiye
  • 2026年山西新疆推荐尼龙由壬接头厂家,高性价比企业大盘点 - mypinpai
  • 2026.1.11
  • 2026年中式门窗供应商口碑排名,唐潮门窗经验积淀,客户认可 - 工业设备
  • 2026年医院门专业厂家推荐:山东森工门业防火/洁净/电动/树脂/金属医院门全系供应 - 品牌推荐官
  • 2026年汕头靠谱海鲜火锅店排名,新海逸以食材新鲜脱颖而出 - 工业品牌热点
  • CodeTest
  • 2026年度权威发布:术后蛋白粉产品实力榜单与科学选择深度解析 - 十大品牌推荐
  • 2026年汕头实惠海鲜火锅店排名,特色海鲜火锅店费用情况如何 - 工业推荐榜