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文件的方法:把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中的数据读取到数据库中很简单,只要循环遍历每一个节点中的数据就可以。

时间: 2024-10-12 09:16:42

JAVA学习之 将xml导入到数据库的相关文章

java把excel数据批量导入到数据库

java把excel数据批量导入到数据库中,java导入excel数据代码如下 1.    public List<Choice> GetFromXls(String xlsname){ 2. 3.        List<Choice> choices = new ArrayList<Choice>(); 4.        Choice choice=null; 5.        try { 6.            java.io.File file=new

Java学习-023-Properties 类 XML 配置文件读取及写入源代码

之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFromXML(InputStream) 和 storeToXml(OutputStream, String, String),由方法名中的 xml 不难确定这两个方法分别是读取/写入数据到 xml 文件.JDK 文档部分如下所示: 因而此文将通过源码实例演示 Properties 类是如何将数据写入

java学习笔记之xml

xml学习笔记 1:xml的概述 1.1 xml是什么 标记语言:语言中出现了<a></a>的标签 a:HTML 超文本标记语言 (语法非常严格,不能随意的定义标签) b:XML 可扩展的标记语言(用户可以根据自己的需求,随意的定义标签) <垃圾></垃圾> 开发的组织:w3c 开源精神 HTML XML Java Script 版本:使用 1.0 1.2 xml有什么用 a:存储数据 b:作为配置文件 1.3 xml怎么用 2:xml的语法 2.1 文档声

JAVA学习笔记 -- 读写XML

XML是一种可扩展标记语言 以下是一个完整的XML文件(也是下文介绍读写XML的样本): <? xml version="1.0" encoding="UTF-8"? > <poem author="William Carlos Williams" title="The Great Figure"> <line>Among the rain</line> <line>

【Java学习笔记】静态导入

1 package p2; 2 3 //import static java.util.Collections.max; 4 5 import java.util.ArrayList; 6 import static java.util.Collections.*; //静态导入,其实导入的是类中的静态成员 7 import java.util.List; 8 import static java.lang.System.*; 9 10 public class news { 11 12 pub

JAVA学习笔记(五十一)- DBUtil 封装数据库工具类

数据库工具类 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /* * 数据库工具类 */ public class DBUtil { // 获取数据库连接 public static Connection getConnection() { String dr

16-1-8 JAVA学习笔记(1) XML语法

一.XML语法 1.xml文档声明,声明基本属性,有且只有一个文档生活,必须在最前端: <?xml version="1.0" encoding="utf-8" standalone="yes" ?>; 2.xml元素,一个xml标签就是一个xml元素,一个标签分为开始标签和结束标签,在开始标签跟结束标签间可以包含文本,文件内容成为标签体, 如果一个xml标签内不包括标签体也不包含其他元素,那么可以把开始标签跟结束标签合并,称为自闭标

16-1-9 JAVA学习笔记(2) XML 约束

定义:在XML技术里,可以编写一个文档来约束一个XML文档的写法,这称之为XML约束. 作用:约束XML文档的写法:对XML进行校验: 常用约束技术 :  XML DTD(Document Type Definition)文档类型定义: XML Schema 1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE 书架 SYSTEM"book.dtd"> 3 <书架&

16-1-10 JAVA学习笔记(3) XML 约束2

dtd 语法 1.元素 <!ELEMENT 元素名称 元素约束>   元素约束:存放类型:any/empty 元素约束:子元素的列表,将可以包含的子元素用小括号括起来,子元素用,号间隔表示出现顺序必须与声明时一致;用|号间隔表示任选其一; 元素内容中可以用+,*,?等符号表示元素出现的次数:+:一次或多次;*:0次或多次;?:0次或一次; 也可以用小括号进行组的操作; 2.属性