热门标签 | 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;  }

}



推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • soatest新建db工具,执行sql语句的步骤和注意事项
    本文介绍了在soatest中新建db工具并执行sql语句的步骤和注意事项,包括设置数据库连接参数、使用配置文件的方法编写sql查询语句、增加oracle驱动连接jar包、运行测试用例以及查看查询结果。详细说明了每个步骤的操作和相关注意事项。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
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社区 版权所有