access 数据解析
最近工作中遇到了数据对接问题,其他平台给我们传递access数据,我们这里进行解析,然后入库.
1.依赖包有三个
-
1.commons-lang-2.6.jar
-
2.jackcess-2.1.10.jar
-
3.jackcess-encrypt-2.1.4.jar
jar包可以通过 JAR包搜索下载地址
如果是maven,则在pom.xml中添加
<dependencies> <dependency> <groupId>com.healthmarketscience.jackcess</groupId> <artifactId>jackcess</artifactId> <version>2.1.10</version> </dependency> <dependency> <groupId>com.healthmarketscience.jackcess</groupId> <artifactId>jackcess-encrypt</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.3</version> </dependency>
2.有了JAR包,之后写了一个工具类,方便操作
package com.common.utils;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Set;
import com.healthmarketscience.jackcess.Column;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import com.healthmarketscience.jackcess.Row;
import com.healthmarketscience.jackcess.Table;
/**
-
解析access数据库工具类
-
@author zws
-
@Date 2019年3月21日
-
依赖 3个jar包
-
1.commons-lang-2.6.jar
-
2.jackcess-2.1.10.jar
-
3.jackcess-encrypt-2.1.4.jar
*/
public class AccessUtil {
private Database dataBase; // 数据源
private String filePath; // access文件路径 : 绝对路径 例如 D:\
private Set tableNames;// 所有database中的表/**
获取database数据源中的所有表名称 - @return
*/
public Set getTableNames() {
return tableNames;
}
public void setTableNames(Database database) throws IOException {
try {
this.tableNames = this.dataBase.getTableNames();
} catch (Exception e) {
closeDataBase(); // 关闭资源连接
throw new IOException("");
}
}
/**
- 获取数据源
- @return
*/
public Database getDataBase() {
return dataBase;
}
public AccessUtil(String filePath) throws IOException {
super();
this.filePath = filePath; // 路径赋值
this.setDatabase();
}
// 判断文件是否存在,如果存在,返回
public File getFile() throws IOException{
if(this.filePath != null){
int lastIndex = this.filePath.lastIndexOf(".");
if(".mdb".equals(this.filePath.substring(lastIndex).toLowerCase())){
File file = new File(this.filePath.trim());
if(file.exists()){
return file;
}
}else{
throw new IOException(“文件类型错误~~~”);
}
}
return null;
}
/**
- 设置Database || 获取database数据源
- @throws IOException
*/
public void setDatabase() throws IOException{
File file = this.getFile();
if(file != null){
try {
this.dataBase = DatabaseBuilder.open(file);
this.setTableNames(this.dataBase);
} catch (IOException e) {
throw new IOException(“打开文件,解析数据源出现异常~~~”+e.getMessage());
}
}else{
throw new IOException(“资源路径错误~~~”);
}
}
/**
- 关闭资源连接
*/
public void closeDataBase(){
try {
this.dataBase.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
- 删除文件
*/
public void delFile(){
if(this.filePath != null){
File file = new File(this.filePath.trim());
if(file.exists()){
file.delete();
}
}
}
public static void main(String[] args) throws IOException {
AccessUtil accessUtil = new AccessUtil(“d:\1.mdb”);
Database dataBase2 = accessUtil.getDataBase(); // 数据源
Set tableNames2 = accessUtil.getTableNames(); // 所有数据源中的表
Table table = dataBase2.getTable(“std”); // 获取表名为 std的所有数据
for (Row row : table) {
List<? extends Column> columns = table.getColumns(); // 获取所有的行数据
for (Column column : columns) {
String key = column.getName(); // 列名
Object value = row.get(key); // 对应值
System.out.println(key+"=="+value);
}
}
accessUtil.closeDataBase(); // 关闭数据源
accessUtil.delFile(); // 删除文件
}
}
赶紧体验一番吧…
- ACCESS 数据类型解析
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
- 用jquery解析JSON数据的方法
- Json数据解析代码demo
- Yahoo! 的新一代大数据技术架构解析
- Spark消费kafkaf的数据,解析数据并将数据存入到Hive中
- JAVA socket 接收硬件字节数据并解析
- snort_rules/doc/signatures 规则解析放入MySql数据中
- Spring Boot使用FastJson解析JSON数据
- 一个JSON 实例 jQuery 解析JSON数据
- 数据加载的妙招解析
- SQL SERVER 与ACCESS、EXCEL的数据转换
- Android随手笔记44之JSON数据解析
- HTTP数据包头解析---之温故而知新! - riky - 博客园
- ssh 不同的url后缀返回不同格式的数据解析
- 2006-5-9 从 MySql 导出数据到 Access中——实践小结 By Stabx
- Android使用GSON和FASTJSON解析服务器返回的JSON数据
- 数据结构图文解析之:直接插入排序及其优化(二分插入排序)解析及C++实现
- Java-json系列(二):用JSONObject解析和处理json数据
- JS解析json数据(如何将json字符串转化为数组)