JAVA创建Access数据库文件

引入第三方jar包:jackcess-2.1.11.jar

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

import com.healthmarketscience.jackcess.*;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Map;

/**
 * @author <a href="mailto:liujie@gtmap.cn">liujie</a>
 * @version 1.0, 2020/10/23
 * @description Access工具类
 */
public class AccessUtil {

    private final static Logger LOGGER = LoggerFactory.getLogger(AccessUtil.class);

    /**
     * @author <a href="mailto:liujie@gtmap.cn">liujie</a>
     * @param databaseFilePath Access数据库文件路径
     * @param tableName 表名称
     * @param fieldMap 字段
     * @return
     * @description 创建Access数据库文件
     */
    public static Database createDatabase(String databaseFilePath, String tableName, Map<String,Integer> fieldMap){
        Database database = null;
        try {
            if(StringUtils.isNotBlank(databaseFilePath)&&StringUtils.isNotBlank(tableName)&&fieldMap != null) {
                //支持mdb和accdb
                database = DatabaseBuilder.create(Database.FileFormat.V2000, new File(databaseFilePath));
                TableBuilder tableBuilder = new TableBuilder(tableName);
                //创建表,字段名,字段类型
                for(Map.Entry<String, Integer> entry : fieldMap.entrySet()){
                    tableBuilder.addColumn(new ColumnBuilder(entry.getKey()).setSQLType(entry.getValue()));
                }
                tableBuilder.toTable(database);
            }
        } catch (SQLException e) {
            LOGGER.error("AccessUtil.createDatabase SQLException!{}",e);
        }catch (IOException e) {
            LOGGER.error("AccessUtil.createDatabase IOException!{}",e);
        }
        return database;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值