java基于xml配置的通用excel单表数据导入组件(二、xml配置文件解析加载)
1、BN_ImportExcel.java 对应xml主节点属性
package XXXXX.manage.importexcel; import java.io.Serializable;
import java.util.HashMap;
import java.util.Map; public class BN_ImportExcel implements Serializable { /**
*
*/
private static final long serialVersionUID = -3837515724164300087L; private String name;
private String initSQL;
private String beforeSaveSQL;
private String afterSaveSQL;
private Map<String, BN_Column> excelColumn;
private Map<String, BN_Column> systemColumn; public void addExcelColumn(String key, BN_Column column) {
if (excelColumn == null) {
excelColumn = new HashMap<String, BN_Column>();
}
excelColumn.put(key, column);
} public void addSystemColumn(String key, BN_Column column) {
if (systemColumn == null) {
systemColumn = new HashMap<String, BN_Column>();
}
systemColumn.put(key, column);
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} public String getInitSQL() {
return initSQL;
} public void setInitSQL(String initSQL) {
this.initSQL = initSQL;
} public String getBeforeSaveSQL() {
return beforeSaveSQL;
} public void setBeforeSaveSQL(String beforeSaveSQL) {
this.beforeSaveSQL = beforeSaveSQL;
} public String getAfterSaveSQL() {
return afterSaveSQL;
} public void setAfterSaveSQL(String afterSaveSQL) {
this.afterSaveSQL = afterSaveSQL;
} public Map<String, BN_Column> getExcelColumn() {
return excelColumn;
}
public void setExcelColumn(Map<String, BN_Column> excelColumn) {
this.excelColumn = excelColumn;
}
public Map<String, BN_Column> getSystemColumn() {
return systemColumn;
}
public void setSystemColumn(Map<String, BN_Column> systemColumn) {
this.systemColumn = systemColumn;
} public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("{")
.append("name:'").append(name).append("',")
.append("initSQL:'").append(initSQL).append("',")
.append("beforeSaveSQL:'").append(beforeSaveSQL).append("',")
.append("afterSaveSQL:'").append(afterSaveSQL).append("',")
.append("excelColumn:").append(excelColumn).append(",")
.append("systemColumn:").append(systemColumn).append("'}");
return sb.toString();
} }
2.BN_Column.java 对应详细字段属性配置
package XXXXXXXX.manage.importexcel; import java.io.Serializable; public class BN_Column implements Serializable { /**
*
*/
private static final long serialVersionUID = 3549142775670034730L; private String column;
private String dataType;
private int length;
private boolean required;
private boolean transfer;
private String className;
private String method;
private String param; public String getColumn() {
return column;
}
public void setColumn(String column) {
this.column = column;
}
public String getDataType() {
return dataType;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
public boolean isRequired() {
return required;
}
public void setRequired(boolean required) {
this.required = required;
}
public boolean isTransfer() {
return transfer;
}
public void setTransfer(boolean transfer) {
this.transfer = transfer;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getParam() {
return param;
}
public void setParam(String param) {
this.param = param;
} public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("{")
.append("column:'").append(column).append("',")
.append("dataType:'").append(dataType).append("',")
.append("length:").append(length).append(",")
.append("required:").append(required).append(",")
.append("transfer:").append(transfer).append(",")
.append("className:'").append(className).append("',")
.append("method:'").append(method).append("',")
.append("param:'").append(param).append("'}");
return sb.toString();
} }
3.解析xml为BN_ImportExcel对象
public class DAO_ImportExcel {
private BN_ImportExcel xmlBean;
private Map<String, BN_Column> excelColumn; // 列名称、字段定义映射
private Map<String, BN_Column> systemColumn;// 系统内置字段定义 private void loadXmlBean() {
BeanReader beanReader = new BeanReader();
// 配置BeanReader实例
beanReader.getXMLIntrospector().getConfiguration()
.setAttributesForPrimitives(false);
beanReader.getBindingConfiguration().setMapIDs(false); // 不自动生成ID
// 注册要转换对象的类,并指定根节点名称
BufferedReader br = null;
try {
beanReader.registerBeanClass("importExcel", BN_ImportExcel.class);
br = new BufferedReader(new InputStreamReader(
new FileInputStream(new File(
PathUtil.getPath("/WEB-INF/excel/" + tableImport + ".xml"))), "GBK"));
// 将XML解析Java Object
xmlBean = (BN_ImportExcel) beanReader.parse(br);
excelColumn = xmlBean.getExcelColumn();
systemColumn = xmlBean.getSystemColumn();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (br != null){
try {
br.close();
} catch (IOException e) {
}
}
}
}
}
java基于xml配置的通用excel单表数据导入组件(二、xml配置文件解析加载)的更多相关文章
- java基于xml配置的通用excel单表数据导入组件(四、DAO主处理类)
package XXXXX.manage.importexcel; import java.beans.IntrospectionException; import java.io.BufferedR ...
- java基于xml配置的通用excel单表数据导入组件(一、实际应用过程)
主要应用技术:poi + betwixt + reflect 一.实际应用过程 1.创建与目标表结构一样,表名为‘{目标表名}_import’的临时表: 2.创建用于存储导入问题数据的表:t_impo ...
- java基于xml配置的通用excel单表数据导入组件(五、Action处理类)
package xxxxxx.manage.importexcel; import java.io.File; import java.util.HashMap; import java.util.M ...
- java基于xml配置的通用excel单表数据导入组件(三、负责数据转换处理的类)
package xxxxxxx.manage.importexcel; import java.util.Map; import java.util.logging.Logger; import xx ...
- jsp+servlet上传excel并将数据导入到数据库表的实现方法
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询
MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...
- MySQL单表数据不超过500万:是经验数值,还是黄金铁律?
今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个 ...
- MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?
本文阅读时间大约3分钟. 梁桂钊 | 作者 今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢 ...
- SQL基本查询_单表查询(实验二)
SQL基本查询_单表查询(实验二) 查询目标表结构及数据 emp empno ename job hiedate sal comn deptno 1007 马明 内勤 1992-6-12 4000 2 ...
随机推荐
- mysqldump: unknown option '--no-beep'
想要备份mysql数据库时,输入mysqldump命令出现如题所示的错误,在网上找了好久,终于从一个帖子上得到了一些提示,就动手试了下,嘿 还真成了!! mysqldump --no-default ...
- 自动生成get,set方法
引发的问题: Action中有一个属性名字叫private boolean isHideNumber 用struts2的<s:if test ="isHideNumber"& ...
- JDBC——架构层、驱动
JDBC(java Datebase Connector) jdbc驱动程序 四种类型: jdbc-odbc桥接驱动程序 Native-API JDBC-Net Native-Protocol (常见 ...
- 【转】 iOS 学习之 NSPredicate 模糊、精确、查询
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): NSPredicate *ca = [NSPred ...
- objective-c中的category
如果有如下一个类 #import <Foundation/Foundation.h> @interface Person : NSObject @property int age; @en ...
- 摘录android工具类
import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.Pac ...
- javaScript笔记1
一.通过 id 访问HTML元素,可以使用 document.getElementById(id) 方法. 例子: <body> <button id="mybtn&quo ...
- 专题二、ArrayList序列化技术细节详解
一.绪论 所谓的JAVA序列化与反序列化,序列化就是将JAVA 对象以一种的形式保持,比如存放到硬盘,或是用于传输.反序列化是序列化的一个逆过程. JAVA规定被序列化的对象必须实现java.io.S ...
- ASP.NET MVC5 easyui 之 treegrid 初用记录
菜鸟初次使用,参考论坛中介绍的方法仍走了一些弯路,把自己遇到的问题记录下来. 1.必须定义根节点: 2.根节点一个或多个均可: 4.根节点的父节点属性不必定义,或者定义为0: 5.各级子节点的父节点属 ...
- localstorage 使用
localstorage作为HTML5的一个特殊属性,在发布时就备受关注:最近总结了其一些小的用法,希望可以抛砖引玉. 因HTML5本地存储只能存字符串,所以所有数据存储的话,都要转化成字符串:而js ...