我们知道向数据库中插入数将xml导入到数据库将xml导入到数据库据的方式有很多种,以前接触最多的都是通过sql语句简单的插入一条数据,今天要学习是将xml中的数据一次添加到数据库中:

首先要写一个xml文件:

00045050

0

MOISES MORENO

T1

T2

T3

T4

T5

T6

T7

00045051

0

RUTH PENA

S1

S2

S3

S4

S5

S6

S7

然后再写读取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文件中的数据读取到数据库中:数据库中的结果如图所示:

0818b9ca8b590ca3270a3433284dd417.png

其实把xml中的数据读取到数据库中很简单,只要循环遍历每一个节点中的数据就可以。

Logo

一站式 AI 云服务平台

更多推荐