java 解析xml 并导入数据库(dom4j )

 

java 解析xml 并导入数据库(dom4j )

 

 

import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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
  */
 public static void main(String[] args) {
  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("D:/share/JavaProjects/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");
    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("将XML导入数据库成功!");
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   DbUtil.close(pstmt);
   DbUtil.close(conn);
  }
 }
 

}

---------------------------------------------------------------------------------------------------------------------------------

 

 <?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>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值