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配置文件解析加载)的更多相关文章

  1. java基于xml配置的通用excel单表数据导入组件(四、DAO主处理类)

    package XXXXX.manage.importexcel; import java.beans.IntrospectionException; import java.io.BufferedR ...

  2. java基于xml配置的通用excel单表数据导入组件(一、实际应用过程)

    主要应用技术:poi + betwixt + reflect 一.实际应用过程 1.创建与目标表结构一样,表名为‘{目标表名}_import’的临时表: 2.创建用于存储导入问题数据的表:t_impo ...

  3. java基于xml配置的通用excel单表数据导入组件(五、Action处理类)

    package xxxxxx.manage.importexcel; import java.io.File; import java.util.HashMap; import java.util.M ...

  4. java基于xml配置的通用excel单表数据导入组件(三、负责数据转换处理的类)

    package xxxxxxx.manage.importexcel; import java.util.Map; import java.util.logging.Logger; import xx ...

  5. jsp+servlet上传excel并将数据导入到数据库表的实现方法

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询

    MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...

  7. MySQL单表数据不超过500万:是经验数值,还是黄金铁律?

    今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个 ...

  8. MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?

    本文阅读时间大约3分钟. 梁桂钊 | 作者 今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢 ...

  9. SQL基本查询_单表查询(实验二)

    SQL基本查询_单表查询(实验二) 查询目标表结构及数据 emp empno ename job hiedate sal comn deptno 1007 马明 内勤 1992-6-12 4000 2 ...

随机推荐

  1. java 乱码问题-Dfile.encoding=UTF-8

    http://blog.csdn.net/telnetor/article/details/5555361 问题描述:程序涉及到国际化问题,httpclient抓回来的数据乱七八糟的乱码,在转了几次编 ...

  2. 将Cell中的视图取出传递到根视图

    当我们点击Cell中的某个图片时,图片会有一种从Cell中取出,放大,然后再回到原来的Cell中的效果.我的想法是:当Cell中的图片用button 来显示.当我们点击Cell中的这个button的时 ...

  3. C#多线程(一) 入门

    本文你会了解如下内容: 1.计算机程序.进程.线程的概念 2.多线程的概念.为什么需要多线程.多线程的好处与坏处 3.C# 线程的一些概念与操作(创建线程.像线程中传递参数.给线程取名.前后台线程.线 ...

  4. Windows server 2003常用设置

    1.禁用配置服务器向导   由于不需要服务器设置功能,首先我们先禁止“配置你的服务器”(Manage   Your   Server)向导的出现,你可以在控制面板(Control   Panel)   ...

  5. java图片高质量缩放类

    import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.image.BufferedI ...

  6. WP8手机解锁时提示“请确保IPOVERUSBSVC服务正常运行”解决方法

    如果你各种重启服务 卸载手机 重装驱动都试过了还不行,请看看你是否安装了Hyper-v或Vitualbox虚拟机,很有可能是虚拟交换机造成的. 我在网络连接属性里看到这个 把它卸载后,解锁成功. 解锁 ...

  7. javascript 单行向上滚动文字

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  8. [转]Android应用的自动更新

    软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...

  9. 点击listview 的列头对其item进行自动排序

    若要自定义排序顺序,必须编写一个实现 IComparer 接口的类,并将 ListViewItemSorter 属性设置为该类的一个对象.当设置 ListViewItemSorter 属性值时,将自动 ...

  10. PHP用memcached做实时分页

    用memcached做分页缓存,可能很多人会觉得麻烦而不用.因为在增加.修改.删除的过程中,你不知道会影响到哪些数据,而如果把所有分页相关的数据缓存都删除并重新生成一遍,实现又很麻烦,甚至不可行,所以 ...