标签:des style blog http io os ar java for
我们知道向数据库中插入数将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中的数据读取到数据库中很简单,只要循环遍历每一个节点中的数据就可以。
标签:des style blog http io os ar java for
原文地址:http://blog.csdn.net/jly4758/article/details/39612073