导读:上篇文章介绍了用XML文件配置数据库的连接,然后通过读取XML文件连接数据库的内容,本篇博客介绍读取XML文件,进行数据持久化的操作。PS:从某种意义上来说,经过Scheme校正的XML文件,本身就已经对数据进行了持久化吧。本篇博客,纯属个人总结记录!

一、XML文件

<span style="font-family:KaiTi_GB2312;font-size:18px;"><?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></span>

分析:从此XML文件可以看出,需要建立一个表单,去分别存储:NUMERO等几个数据,而最后一个TURNOS,可以集合存储,也可以是另建一个表单进行存储,本篇总结是集合存储,以 “,”分离。

二、需要引用的jar包

三、存储代码

注意:有一段数据库连接的代码,这里就不做阐述,请看上一篇博客:[Java 经验5]读取Xml配置文件,连接数据库

<span style="font-family:KaiTi_GB2312;font-size:18px;">package com.angel.xml;

import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
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
* @throws SQLException
*/
public static void main(String[] args) throws SQLException { 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("E:/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"); System.out.println(nombre); 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("导入数据库成功");
} catch (Exception e) {
e.printStackTrace();
}finally{
DbUtil.close(conn);
DbUtil.close(pstmt);
}
} }
</span>

四、运行结果

五、总结思考

其实,采用一些工具去读取Xml文件,也可以获取到数据。之前老师说过,并不是所有展示在页面的数据,都要存入数据库。那么,我在想,有些数据是不是也可以存入到Xml里面(当然大数据量的存储还是呵 呵了)。

然后,突然想起之前做的批量上传,使用XML,那时候觉得这个XML中包含了数据。可是现在想来,之前运用Xml,大抵只是通过它的Scheme,去规范格式,以便和数据库相对应吧。

[drp 4] 使用dom4j,读取XML数据,保存至数据库的更多相关文章

  1. POI读取Excel数据保存到数据库,并反馈给用户处理信息(导入带模板的数据)

    今天遇到这么一个需求,将课程信息以Excel的形式导入数据库,并且课程编号再数据库中不能重复,也就是我们需要先读取Excel提取信息之后保存到数据库,并将处理的信息反馈给用户.于是想到了POI读取文件 ...

  2. C#winfrom将XML数据保存读取删除

    //创建一个数据集,将其写入xml文件 string name = "1.xml"; System.Data.DataSet ds = new System.Data.DataSe ...

  3. DOM4J读取XML文件

    最近在做DRP的项目,其中涉及到了读取配置文件,用到了DOM4J,由于是刚开始接触这种读取xml文件的技术,好奇心是难免的,于是在网上又找了一些资料,这里就结合找到的资料来谈一下读取xml文件的4中方 ...

  4. 【XML】利用Dom4j读取XML文档以及写入XML文档

    Dom4j简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能 ...

  5. RSS阅读器(一)——dom4j读取xml(opml)文件

    接触java不久,偶有收获,最近想做一个web版RSS阅读器来锻炼一下.手头有几个从不同版本的foxmail中导出的opml文件,大家应该都知道,opml文件就是xml格式的.那么就先从这里入手,练习 ...

  6. 使用dom4j 读取XML文件

    第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...

  7. 使用dom4j读取xml连接数据库与之单例模式

    使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...

  8. wcf序列化大对象时报错:读取 XML 数据时,超出最大

    错误为: 访问服务异常:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出 错: request.InnerException 消息是“反序 ...

  9. InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)

    WEB站点在调用我们WCF服务的时候,只要传入的参数过长,就报如下错误: 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: formD ...

  10. Web Service 或 WCF调用时读取 XML 数据时,超出最大字符串内容长度配额(8192)解决方法

    1.调用服务时服务 当我们使用 Web Service 或 WCF 服务时,常把读取的数据转化为string类型(xml格式),当数据量达到一 定数量时,会出现以下异常: 错误:格式化程序尝试对消息反 ...

随机推荐

  1. python3 写文件

    #coding:utf-8 wfile = open('test.txt','w') str=''' 在广大玩家的要求下这款修改器诞生 了,这首先要归功于太阁狂人_Cath_Sean 的大力支持,这款 ...

  2. PLSQL_数据泵定参数批量导入多表Expdp/Impdp Parfile(案例)

    2015-04-01 Created By BaoXinjian

  3. DBA_VMware虚拟机安装和简介(案例)

    2014-08-08 Created By BaoXinjian

  4. MST_prim

    刚刚发了mst 的kruskal,现在再来一发,说一说prim咯. prim适用于稠密图. 与kruskal不同,prim是从一个点开始,不断加入新的点直至连通所有点. 讲讲prim的过程,我们假定有 ...

  5. Python分布式爬虫原理

    转载 permike 原文 Python分布式爬虫原理 首先,我们先来看看,如果是人正常的行为,是如何获取网页内容的. (1)打开浏览器,输入URL,打开源网页 (2)选取我们想要的内容,包括标题,作 ...

  6. $.ajax()中dataType

    $.ajax()中dataType的默认值为TEXT,如果没有指明json,而返回来的数据又就是json格式,则无法显示.!!

  7. Python补充03 Python内置函数清单

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明. Python内置(built-in)函数随着python解释器的运行而创建.在Pytho ...

  8. java获取数据库的列名,类型等信息

    当你使用和学习JDK的时候,可以查看并学习它所提供给你的两个ResultSetMetaData 和DataBaseMetaData类的源码并很好的了解它们的实现原理和思路,JDBC中提供有两种源数据, ...

  9. 【转】group by多个字段理解

    来源:http://uule.iteye.com/blog/1569262 首先group by 的简单说明: group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使 ...

  10. textarea文本换行和页面显示换行符

    在textarea里写的文本有换行,但是显示到页面后就不会自动换行,通过对数据分析发现textarea里的换行符是\n\r,然而HTML中的换行为<\br>解决办法有两种: 第一种:把文本 ...