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 ...
随机推荐
- CWnd::UpdateData
CWnd::UpdateData 格式: BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); 描述:调用该成员函数初始化在对话框中的数据,或检索和验证对话 ...
- C# 简单的图像边缘提取
博主做的很简单,大家看一看就好了...... 用到的算法是robert算子,这是一种比较简单的算法: f(x,y)=sqrt((g(x,y)-g(x+1,y+1))^2+(g(x+1,y)-g(x,y ...
- Fibonacci数列的java实现
关于Fibonacci应该都比较熟悉,0,1,1,2,3..... 基本公式为f(n) = f(n-1) + f(n-2); f(0) = 0; f(1) =1; 方法1:可以运用迭代的方法实现: p ...
- 05_天气查询_JAX-WS方式_客户端
[客户端特点] 支持面向对象开发. 客户端功能调用webService,首先得知道WebService的地址. 一般情况下,只要知道了wsdl的地址,就可以知道WebService的地址. 我们上一篇 ...
- ASP.NET获取服务器文件的物理路径
如下: string fullpath = context.Server.MapPath("hello.htm"); //得到hello.htm的全路径 string conten ...
- leetcode problem (5) Longest Palindromic Substring
最长回文子串: 1. 暴力搜索 时间复杂度O(n^3) 2. 动态规划 dp[i][j] 表示子串s[i…j]是否是回文 初始化:dp[i][i] = true (0 <= i <= ...
- fedora 20 install skype
http://www.if-not-true-then-false.com/2012/install-skype-on-fedora-centos-red-hat-rhel-scientific-li ...
- Linux 内核学习的经典书籍及途径
from:http://www.zhihu.com/question/19606660 知乎 Linux 内核学习的经典书籍及途径?修改 修改 写补充说明 举报 添加评论 分享 • 邀请回答 ...
- React组件一
<div id='test'></div> <script type='text/babel'> var Zu=React.createClass({ return ...
- 【 java版坦克大战--事件处理】 键盘控制小球上下左右移动
上一节已经学习了事件处理,这一节需要完成通过键盘的上下左右键控制小球移动. 然后再通过应用到我们绘制的坦克上. /** * 加深对事件处理机制的理解 * 通过光标的上下左右键,控制小球的左右上下移动. ...