dom4j实现将XML文件导入到数据库表

前言

在工作中,尝试用dom4j来解析xml文件,然后可以插入到数据库表中,这样可以在数据库插入数据就方便很多了,现在小编就先带大家去了解一下基本知识,然后再去看看具体的实现过程。

扩展

dom4j?

dom4j 是JAVA的xml的API文档,用来读取xml文件的。dom4j应用于 Java 平台,采用 Java 集合框架并完全支持 DOM,SAX 和 JAXP。

推荐链接:https://www.baidu.com/link?url=PQV3ct25AjPmPN3a14T3AEWh1Btxdx-CkinMoxTv1uhu3v0fwYir0HOSmqsMvk_4BkSq0dY7Yh9uIlBNs8o5ka&wd=&eqid=dcc62ac600065680000000025c4928c4

XML?

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

package com.drp.xml;
import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
 
public class TestXMLImport {
 
	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);
			//读取xml文件
			Document doc = new SAXReader().read(new File("D:/java/MyEclipse 10/test_xmlImport/xml/test.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 iterator = turnosList.iterator(); iterator
						.hasNext();) {
					Element turnosElt = (Element) iterator.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(); 
			}
			//批量执行sql语句
			pstmt.executeBatch();  
            System.out.print("将XML导入数据库成功"); 			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{  
	        DbUtil.close(pstmt);  
	        DbUtil.close(conn);  
		}  
	}
}

总结

关于dom4j、xml还有没有更强大的功能呢,在后面的日子里慢慢的去发现、去实践,去了解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值