热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java导出mdb文件_Java中Java生成mdb文件工具类

packagecom.util;***Java生成mdb文件[MSAccess文件]*1.在ClassPath下存一个空的blank.mdb.(也就是在你的项目中包含一个空白的.m

package com.util;

/**  * Java生成mdb文件[MS Access文件]  * 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的时候, 不需要再做表结构的创建, 只需要做数据插入即可.   */

import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;

public class AccessUtil {    private String softPath;  private String softAccessPath;    private Connection connection;

private Statement statement;

// 空白mdb文件路径. 直接保存在src/cn/iwoo/dataexport/common/下.  private final String blankMdbFilePath = "com/util/";

// 空白mdb文件名  private final String blankMdbFileName = "blank.mdb";

// 需要保存到的新的mdb文件路径和名  //private String savedMdbFilePathAndName = defaultSavedMdbFilePath + defaultSavedMdbFileName;  private String savedMdbFilePathAndName = softAccessPath + defaultSavedMdbFileName;

// 新mdb文件路径  public static final String defaultSavedMdbFilePath = "C://access//";

// 新mdb文件名  public static final String defaultSavedMdbFileName = "database.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(String savePath, String fileName) throws Exception {   InputStream is = this.getClass().getClassLoader().getResourceAsStream(     blankMdbFilePath + blankMdbFileName);   //OutputStream out = new FileOutputStream(savedMdbFilePathAndName);   OutputStream out = new FileOutputStream(savePath + fileName);   byte[] buffer = new byte[1024];   int numRead;   while ((numRead = is.read(buffer)) != -1) {    out.write(buffer, 0, numRead);   }   is.close();   out.close();  }

/**   *

  * Description: 将空白mdb文件拷贝到特定目录http://www.javalearns.com/ *

  */  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(String path, String fileName) throws Exception {   String savedMdbFilePathAndName = path + fileName;   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: 打开对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语句http://www.javalearns.com/ *

  */  public void executeSql(String sql) throws Exception {   statement.execute(sql);  }

/**   *

  * Description: 关闭连接   *

  */  public void closeConnection() throws Exception {   if(statement != null)    statement.close();      if(connection != null)    connection.close();  }

public static void main(String[] args) {   AccessUtil au = AccessUtil.getInstance();   //String sql = "Create Table main ( ID integer, title string, image_ID integer,href_ID integer,text_ID integer,audio_ID integer,dv_ID integer ); ";   //String sql = "create table Archives_tbl (LLR MEMO,LLRQ MEMO,QZH MEMO,MLH MEMO,AJH MEMO,DH MEMO,BGJH MEMO,FLJH MEMO,MJ MEMO,AJBT MEMO,ND MEMO,DW MEMO,JS MEMO,YC MEMO,BGQX MEMO,QSRQ MEMO,JZRQ MEMO,BZ MEMO);";   String sql1 = "create table Archives_tbl (QZH MEMO,MLH MEMO,AJH MEMO,DH MEMO,BGJH MEMO,FLJH MEMO,MJ MEMO,AJBT MEMO,ND MEMO,DW MEMO,JS MEMO,YS MEMO,BGQX MEMO,QSRQ MEMO,JZRQ MEMO,BZ MEMO);";   String sql2 = "create table Files_tb1 (SXH MEMO,WH MEMO,TM MEMO,ZRZ MEMO,ZTC MEMO,RQ MEMO,YC MEMO,YS MEMO,MJ MEMO,LDPSR MEMO,GB MEMO,QTZT MEMO,BZ MEMO,DH MEMO,Vpath MEMO);";           try {    au.copyBlankMdbFile();    au.connetAccessDB();    au.executeSql(sql1);    au.executeSql(sql2);    au.closeConnection();   } catch (Exception e) {    // TODO Auto-generated catch block    e.printStackTrace();   }  }

public void setSoftPath(String softPath) {   this.softPath = softPath;  }

public void setSoftAccessPath(String softAccessPath) {   this.softAccessPath = softAccessPath;  }

}



推荐阅读
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 字节流(InputStream和OutputStream),字节流读写文件,字节流的缓冲区,字节缓冲流
    字节流抽象类InputStream和OutputStream是字节流的顶级父类所有的字节输入流都继承自InputStream,所有的输出流都继承子OutputStreamInput ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 在分析Android的Audio系统时,我们对mpAudioPolicy->get_input进行了详细探讨,发现其背后涉及的机制相当复杂。本文将详细介绍这一过程及其背后的实现细节。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 本文详细解析了客户端与服务器之间的交互过程,重点介绍了Socket通信机制。IP地址由32位的4个8位二进制数组成,分为网络地址和主机地址两部分。通过使用 `ipconfig /all` 命令,用户可以查看详细的IP配置信息。此外,文章还介绍了如何使用 `ping` 命令测试网络连通性,例如 `ping 127.0.0.1` 可以检测本机网络是否正常。这些技术细节对于理解网络通信的基本原理具有重要意义。 ... [详细]
author-avatar
ALI韩帅该
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有