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 ...
随机推荐
- JavaSE生成随机数
今天呢,老师讲了一下怎么用jvm实现随机数(本人对此很感兴趣),一个简单的随机100以内整数的代码如下: /** 生成随机数 */ import java.util.Random; public cl ...
- Poj 1511 Invitation Cards(spfa)
Invitation Cards Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 24460 Accepted: 8091 De ...
- OpenCV(7)-图像直方图
直方图定义可参考这里.图像的直方图用来表示图像像素的统计信息,它统计了图像每一个通道(如果是多通道)中,每个像素的个数(比例). 计算直方图 OpenCV提供了直接计算直方图的函数 void calc ...
- C++里容易忽视却不能忽视的
1 define 只是简单地文本替换. 2 每个机器的字长不同. 3 每个类型在不同的机器上,所占用的内存空间不同. 4 每个机器内部的字节大小端不同. 5 并不是所有的编译器或机器都支持最新的C++ ...
- HeadFirst设计模式
oo基础 抽象 封装 多态 继承 oo原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程(策略模式) 为交互对象之间的松耦合设计而努力(观察者模式) 对扩展开放,对修改关闭(装饰者模式) ...
- scala - 从合并两个Map说开去 - foldLeft 和 foldRight 还有模式匹配
开发中遇到需求:合并两个Map集合对象(将两个对应KEY的值累加) 先说解决方案: ( map1 )) ) } 这特么什么鬼 (╯‵□′)╯""┻━┻☆))>○<) ...
- 深入了解line-height
1.定义 行高:两行文字baseline(基线)之间的距离 示意图: 2.为何line-height可以让单行文本垂直居中 其实并没有垂直居中,除非将font-size:0; 3.li ...
- 006 Python的操作符
算术操作符: + - * / % ** // 如 >>> a = 5 >>> a = a + 3 >>&g ...
- insert遭遇阻塞
insert的阻塞确实不常见,今天碰到了一个,看书又了解一个,整理下.1.多个会话同时向unique字段插入相同的值session1:首先建测试表test,并在字段id上创建一个主键索引(唯一键也可以 ...
- windows appfabric samples
http://www.microsoft.com/en-us/download/details.aspx?id=19603 http://msdn.microsoft.com/zh-cn/librar ...