Jackcess 海量数据的.mdb文件快速生成

本文介绍了如何使用Jackcess库在Java中处理大型MDB文件,通过实例展示了如何创建表、动态插入数据,以及解决ClassCastException问题。重点讲解了批量插入数据的两种方法,以及遇到的问题和解决策略。

前言

之前有完成过一个需求,根据数据库名称提取对应数据库表的数据(有张表内有很多表的信息包括名称、连接信息等),使用这些信息生成一个.mdb文件,通过流返回给前端页面下载

一、mdb数据是什么

mdb (message driven bean)MDB也是EJB中消息驱动Bean的简称,MessageDrivenBean(MDB)。mdb(Microsoft Database)格式是Microsoft Access软件使用的一种存储格式,因其对数据操作的方便性,常用在一些中小型程序中。

在使用jackcess之前,我是直接加载驱动,获取连接这样一步步做下去,然后根据数据,一条条insert这样生成(后台的mdb文件也是几k几十k的加),数据量小的话还行,数据量一多,就经常造成前台等不及直接超时的问题(哪怕后台在一点点的下载)。

也不是没想过异步,但是由于不好确认文件是否下载完成,这种方法就搁置了。

后来公司大佬又做过类似的,几w条数据也是几秒就提取出来了,就去请教了下,了解了Jackcess之后,去网上查询过后,结合之前的数据,也算完成了任务。

二、Jackcess

Jackcess 是一个Java 类库,用来读写微软的Access 数据库。
使用了Jackcess,生成数据的速度确实是几何倍速的提升!

2.1 直接开始代码吧,首先引入依赖

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

2.2 手动创建、单条插入数值
代码中的Types是java.sql.Types的

	//这里同样支持mdb和accdb
		Database db = DatabaseBuilder.create(Database.FileFormat.V2000, new File("D:\\geocloud\\mdbdownloads\\new.mdb"));
		Table newTable;
		try {
   
   
			//刚才是创建文件,这里是在文件里创建表,字段名,字段类型
			newTable = new TableBuilder("Archives")
			.addColumn(new ColumnBuilder("档案号")
			.setSQLType(Types.INTEGER))
			.addColumn
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值