引入第三方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; }