JAVA学习之 将xml导入到数据库

      我们知道向数据库中插入数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文件的方法:dom4jjar包引入到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中的数据读取到数据库中很简单,只要循环遍历每一个节点中的数据就可以。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。