zoukankan      html  css  js  c++  java
  • 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) {
    				}
    			}
    		}
    	}
    }
    

      

  • 相关阅读:
    js forEach方法
    day1总结
    jupyter notebook
    java_13网络编程
    原生 input radio 优化
    JQ 获取 input file 图片 显示在对应位置
    math.js 使用
    前端优化
    文字动态颜色变化效果
    谷歌,火狐隐藏滚动条
  • 原文地址:https://www.cnblogs.com/101key/p/3286487.html
Copyright © 2011-2022 走看看