导读:上篇文章介绍了用XML文件配置数据库的连接,然后通过读取XML文件连接数据库的内容,本篇博客介绍读取XML文件,进行数据持久化的操作。PS:从某种意义上来说,经过Scheme校正的XML文件,本身就已经对数据进行了持久化吧。本篇博客,纯属个人总结记录!
一、XML文件
<span style="font-family:KaiTi_GB2312;font-size:18px;"><?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></span>
二、需要引用的jar包
三、存储代码
注意:有一段数据库连接的代码,这里就不做阐述,请看上一篇博客:[Java 经验5]读取Xml配置文件,连接数据库
<span style="font-family:KaiTi_GB2312;font-size:18px;">package com.angel.xml; import java.io.File; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class TestXMLImport { /** * @param args * @throws SQLException */ public static void main(String[] args) throws SQLException { 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); Document doc=new SAXReader().read(new File("E:/drp/test_xmlImport/xml/test01.XML")); List itemList=doc.selectNodes("/ACCESOS/item/SOCIO"); 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"); List turnosList=el.elements("TURNOS"); System.out.println(nombre); 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); } pstmt.setString(1, numero); pstmt.setString(2, reposicion); pstmt.setString(3, nombre); pstmt.setString(4, sbString.toString()); pstmt.addBatch(); } pstmt.executeBatch(); System.out.println("导入数据库成功"); } catch (Exception e) { e.printStackTrace(); }finally{ DbUtil.close(conn); DbUtil.close(pstmt); } } } </span>
四、运行结果
五、总结思考
其实,采用一些工具去读取Xml文件,也可以获取到数据。之前老师说过,并不是所有展示在页面的数据,都要存入数据库。那么,我在想,有些数据是不是也可以存入到Xml里面(当然大数据量的存储还是呵 呵了)。
然后,突然想起之前做的批量上传,使用XML,那时候觉得这个XML中包含了数据。可是现在想来,之前运用Xml,大抵只是通过它的Scheme,去规范格式,以便和数据库相对应吧。