?? vofactory.java
字號:
/*
* 創建日期 2005-10-29
*
* TODO 要更改此生成的文件的模板,請轉至
* 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
*/
package databaseConnectPool;
import java.io.ByteArrayInputStream;
import java.io.Serializable;
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* @author Administrator
*
* TODO 要更改此生成的類型注釋的模板,請轉至
* 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
*/
public class VOFactory {
// 構造出的對象集合
private ArrayList list=new ArrayList();
/** 利用反射獲取結果集 */
public List parse(Serializable source, String xml){
try{
//構造 XML 輸入流
ByteArrayInputStream ba=new ByteArrayInputStream(xml.getBytes());
//Dom4J 初始化
SAXReader reader = new SAXReader();
Document document = reader.read(ba);
Element root = document.getRootElement();
//獲得類對象
Class c = source.getClass();
//獲得構造函數
Constructor[] cons=c.getDeclaredConstructors();
Constructor con=cons[0];
//獲得類中的字段
Field[] fields = c.getDeclaredFields();
//設置訪問private字段的權限
AccessibleObject.setAccessible(fields,true);
//以特定名稱獲得 XML 元素列表
List lis = root.elements("ARSUBITEM");
//"ARSUBITEM"元素下的子元素
for(int i=0;i<lis.size();i++){
Element element=(Element)lis.get(i);
Iterator iter=element.elementIterator();
//從構造函數實例化對象
Serializable localObj=(Serializable)con.newInstance(null);
//按照字段個數循環
int j=0;
while(iter.hasNext()){
Element e=(Element)iter.next();
fields[j].set(localObj,e.getText());
j++;
}
list.add(localObj);
}
}catch(Exception e){
e.printStackTrace();
}
return list;
}
public static void main(String[] args) {
VOFactory v=new VOFactory();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -