JAVA學習之 將xml導入到數據庫
來源:程序員人生 發布時間:2014-10-08 18:00:46 閱讀次數:2919次
我們知道向數據庫中插入數將xml導入到數據庫將xml導入到數據庫據的方式有很多種,以前接觸最多的都是通過sql語句簡單的插入一條數據,今天要學習是將xml中的數據一次添加到數據庫中:
首先要寫一個xml文件:
<?xml version="1.0" encoding="utf-8"?>
<ACCESOS>
<item>
<SOCIO>
<NUMERO>00045050</NUMERO>
<REPOSICION>0</REPOSICION>
<NOMBRE>MOISES MORENO</NOMBRE>
<TURNOS>
<LU>T1</LU>
<MA>T2</MA>
<MI>T3</MI>
<JU>T4</JU>
<VI>T5</VI>
<SA>T6</SA>
<DO>T7</DO>
</TURNOS>
</SOCIO>
</item>
<item>
<SOCIO>
<NUMERO>00045051</NUMERO>
<REPOSICION>0</REPOSICION>
<NOMBRE>RUTH PENA</NOMBRE>
<TURNOS>
<LU>S1</LU>
<MA>S2</MA>
<MI>S3</MI>
<JU>S4</JU>
<VI>S5</VI>
<SA>S6</SA>
<DO>S7</DO>
</TURNOS>
</SOCIO>
</item>
</ACCESOS>
然后再寫讀取xml文件的方法:把dom4j的jar包引入到WEB-INFO下的lib下,并添加引用:
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public static void main(String[] args){
//插入數據的sql語句
String sql="insert into T_XML(NUMERO, REPOSICION, NOMBRE, TURNOS) values (?, ?, ?, ?)";
Connection conn=null;
PreparedStatement pstmt=null;
try{
conn=DbUtil.getConnection();
pstmt=conn.prepareStatement(sql);
//讀取xml文件
Document doc=new SAXReader().read(new File("F:/J2EEmyself/DRP/test_xmlImport/xml/test01.XML"));
//選擇xml文件的節點
List itemList=doc.selectNodes("ACCESOS/item/SOCIO");
//遍歷讀出的xml中的節點
for(Iterator iter=itemList.iterator();iter.hasNext();){
Element el=(Element)iter.next();
//讀取節點內容
String numero=el.elementText("NUMERO");
String reposicion = el.elementText("REPOSICION");
String nombre = el.elementText("NOMBRE");
//遍歷TURNOS節點中的內容
List turnosList = el.elements("TURNOS");
StringBuffer sbString=new StringBuffer();
for(Iterator iter1=turnosList.iterator();iter1.hasNext();){
Element turnosElt=(Element)iter1.next();
String lu = turnosElt.elementText("LU");
String ma = turnosElt.elementText("MA");
String mi = turnosElt.elementText("MI");
String ju = turnosElt.elementText("JU");
String vi = turnosElt.elementText("VI");
String sa = turnosElt.elementText("SA");
String doo = turnosElt.elementText("DO");
sbString.append(lu + "," + ma + "," + mi + "," + ju + "," + vi + "," + sa + "," + doo);
}
//為sql語句賦值
pstmt.setString(1, numero);
pstmt.setString(2, reposicion);
pstmt.setString(3, nombre);
pstmt.setString(4, sbString.toString());
pstmt.addBatch();
}
pstmt.executeBatch();
System.out.print("將XML導入數據庫成功");
}catch(Exception e){
e.printStackTrace();
}finally{
DbUtil.close(pstmt);
DbUtil.close(conn);
}
}
這樣很簡單就可以把xml文件中的數據讀取到數據庫中:數據庫中的結果如圖所示:
其實把xml中的數據讀取到數據庫中很簡單,只要循環遍歷每一個節點中的數據就可以。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈