1. 在ClassPath下存一個空的blank.mdb. (也就是在你的項目中包含一個空白的.mdb文件)

2. 將項目中的blank.mdb另存到新的路徑. (可能是用戶選擇要導出mdb文件的保存路徑)

3. 將.mdb作為數據源, 用JDBC ODBC添加數據. 注: jdbc-odbc 在jre中是有的jre/lib/rt.jar. 也就是不需要引入額外的jar包.

注:

步驟3中, 你可以執行CREATE Table的SQL語句.

如果你已經知道了DB的SCHEMA, 那更簡單了, 你直接在你的項目中包含一個帶有SCHEMA的空的.mdb文件, 這樣在步驟3的時候, 不需要再做表結構的創建, 只需要做數據插入即可.

public class AccessUtil {

private Connection connection;

private Statement statement;

// 空白mdb文件路徑. 直接保存在src/cn/iwoo/dataexport/common/下.

private final String blankMdbFilePath = "cn/iwoo/dataexport/common/";

// 空白mdb文件名

private final String blankMdbFileName = "blank.mdb";

// 需要保存到的新的mdb文件路徑和名

private String savedMdbFilePathAndName = defaultSavedMdbFilePath + defaultSavedMdbFileName;

// 新mdb文件路徑

public static final String defaultSavedMdbFilePath = "C://";

// 新mdb文件名

public static final String defaultSavedMdbFileName = "data.mdb";

// mdb文件後綴

public static final String defaultSavedMdbFileExtension = ".mdb";

// 標準的單件模式

private static AccessUtil instance = new AccessUtil();

private AccessUtil() {

}

public static AccessUtil getInstance() {

return instance;

}

/**

*

Description: 設置待保存的新的mdb文件路徑和名

*/

public void setSavedFilePathAndName(String newFilePathAndName) {

this.savedMdbFilePathAndName = newFilePathAndName;

}

/**

*

Description: 刪除已經存在的mdb文件

*/

public void deleteOldMdbFile() throws Exception {

File oldTargetFile = new File(savedMdbFilePathAndName);

if (oldTargetFile.exists()) {

oldTargetFile.delete();

}

}

/**

*

Description: 將空白mdb文件拷貝到特定目錄

*/

public void copyBlankMdbFile() throws Exception {

InputStream is = this.getClass().getClassLoader().getResourceAsStream(blankMdbFilePath + blankMdbFileName);

OutputStream out = new FileOutputStream(savedMdbFilePathAndName);

byte[] buffer = new byte[1024];

int numRead;

while ((numRead = is.read(buffer)) != -1) {

out.write(buffer, 0, numRead);

}

is.close();

out.close();

}

/**

*

Description: 打開對mdb文件的jdbc-odbc連接

*/

public void connetAccessDB() throws Exception {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + savedMdbFilePathAndName.trim() + ";DriverID=22;READONLY=true}";

connection = DriverManager.getConnection(database, "", "");

statement = connection.createStatement();

}

/**

*

Description: 執行特定sql語句

*/

private void executeSql(String sql) throws Exception {

statement.execute(sql);

}

/**

*

Description: 關閉連接

*/

public void closeConnection() throws Exception {

statement.close();

connection.close();

}

}

java mdb文件_Java生成mdb文件[MS Access文件] | 學步園相关推荐

  1. java 导出mdb文件_Java生成mdb文件[MS Access文件](转载)

    public class AccessUtil { private Connection connection; private Statement statement; // 空白mdb文件路径. ...

  2. java根据pdf模板生成指定格式的pdf文件

    java根据pdf模板生成指定格式的pdf文件 一.工具准备 事先得准备好Adobe Acrobat DC,这是一款专门编辑pdf的工具,小编已经给大家准备好了. 链接:https://pan.bai ...

  3. java 生成csv文件_Java生成CSV文件实例详解

    本文实例主要讲述了java生成csv文件的方法,具体实现步骤如下: 1.新建csvutils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  4. java 生成操作excel文件_Java生成和操作Excel文件

    AVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯 ...

  5. java创建linux文件_Java生成文件夹

    1.说明 判断文件夹是否存在,如果不存在就创建该文件夹,并打印其路径:如果存在,打印其路径 2.实现源码 /** * @Title:BuildFolder.Java * @Package:com.yo ...

  6. java读取系统中指定的文件_java读取jar中指定的文件

    Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...

  7. java搜索文件_Java如何在目录中搜索文件?

    在Java程序中,如何在目录中搜索文件? 以下示例显示如何通过创建Filefiter来搜索目录中的特定文件.以下示例显示文件名以'D'开头的所有文件. package com.yiibai; impo ...

  8. java gzip压缩_Java GZIP示例–压缩和解压缩文件

    java gzip压缩 Welcome to Java GZIP example. GZIP is one of the favorite tool to compress file in Unix ...

  9. java解压两层zip文件_Java解压缩zip - 解压缩多个文件或文件夹实例

    java解压缩zip - 多个文件(包括文件夹),具体如下: 对多个文件和文件夹进行压缩,对复杂的文件目录进行解压. 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参 ...

最新文章

  1. 视觉SLAM前端特征检测与跟踪的思考
  2. 每日一皮​:昨天晚上下班回家,一民警迎面巡逻而来。 突然对我大喊:站住!...
  3. 权限管理说明-以Linux为例
  4. 操作多个表_7_基于子串的连接
  5. 洛谷——P1019 单词接龙
  6. android如何获得开发者权限,Android 动态权限获取 超级简单的方式
  7. “物联网”“云计算” IT业新概念风起云涌
  8. socket.io框架学习
  9. ruby笔记 基于对象的类(object specific class)
  10. import java.sql.date_java.sql.Date日期比较
  11. 斑图的matlab程序,斑图生成
  12. 【网络流量识别】【聚类】【一】模糊聚类FCS和GA—网络安全网络流量功能的模糊聚类
  13. 浅谈数据库用户表结构设计和第三方登录
  14. 阮一峰老师-Auth 2.0 的一个简单解释
  15. python中常见的错误提示_python常见异常提示
  16. 如何关闭华为手机连接电脑自动弹出cd驱动器和类似文件管理文件夹
  17. HTML生成PDF、web打印动态分页、预览。内容满了,自动换页、移动端兼容 bookjs-eazy
  18. 谈谈DDD(领域驱动设计)
  19. (翻译)Understanding Convolutional Neural Networks for NLP
  20. Fluent API

热门文章

  1. WSL配置中文输入法
  2. js中的slice方法(开始索引,结束索引-不包含该索引元素)-截取和splice方法-删除(开始索引,删除个数)和插入-(开始索引,删除个数,插入内容)
  3. Unity2020连接MySQL数据库
  4. ActionScript3常用类使用简介及案例
  5. 函数的四种调用模式以及call()apply()和bind()
  6. Omi 入坑指南 Third field 事件入门
  7. javascript数组之数组排序:数组按照字符顺序排序,反转数组,数字排序,比值函数,随机排序,查找最大最小数组值,自制找数组最高最低值办法,排序对象数组
  8. Andorid-15k+的面试题
  9. 手机记账小程序开发有哪些功能?
  10. 福建工程学院计算机科学类投档线,福建工程学院计算机科学与技术专业2016年在山东理科高考录取最低分数线...