【java】xml文件表建立及读取环境搭建并采用DOM4J完成XML文件导入到数据库
2016-08-18 21:02
525 查看
java一种简单的解析xml方法是用DOM进行解析, dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的,dom4j用于处理xml是很常用的技术,本篇博客介绍xml文件表建立及读取环境搭建并采用DOM4J完成XML文件导入到数据库。
字段:
使用PD建好表之后点击database选择database Generation导出为sql脚本
(2)执行脚本
这样刷新就可以看到这张表了。
需要注意的是我们需要把dom4j用于处理xml是很常用的技术,把lib中的文件引入到classpath中
(2)采用pstmt.addBatch(),把若干sql语句装载到一起,然后一次送到数据库执行,减少了数据的传输时间,执行只需要很短的时间,提高数据交互的效率。
1.XML文件
2.根据xml文件建表
表名:T_XML字段:
使用PD建好表之后点击database选择database Generation导出为sql脚本
3.使用PL/SQL导入sql脚本
(1)选择脚本所在文件夹(2)执行脚本
这样刷新就可以看到这张表了。
4.读取环境搭建
需要注意的是我们需要把dom4j用于处理xml是很常用的技术,把lib中的文件引入到classpath中
5.采用DOM4J完成XML文件导入到数据库
(1)数据库配置公共类DbUtil类部分:
package com.bjpowernode.xml; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.bjpowernode.drp.util.JdbcConfig; import com.bjpowernode.drp.util.XmlConfigReader; /** * 封装数据常用操作 * @author www * */ public class DbUtil { /** * 取得Connection * @return */ public static Connection getConnection() { Connection conn = null; try { JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig(); Class.forName(jdbcConfig.getDriverName()); conn = DriverManager.getConnection(jdbcConfig.getUrl(), jdbcConfig.getUserName(), jdbcConfig.getPassword()); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } //关闭数据库连接 public static void close(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } //关闭PreparedStatement public static void close(Statement pstmt) { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } //关闭数据库连接 public static void close(ResultSet rs ) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } //事务开始前的准备工作,设置为手动提交 public static void beginTransaction(Connection conn) { try { if (conn != null) { if (conn.getAutoCommit()) { conn.setAutoCommit(false); //手动提交 } } }catch(SQLException e) {} } //提交事务 public static void commitTransaction(Connection conn) { try { if (conn != null) { if (!conn.getAutoCommit()) { conn.commit(); } } }catch(SQLException e) {} } //回滚事务 public static void rollbackTransaction(Connection conn) { try { if (conn != null) { if (!conn.getAutoCommit()) { conn.rollback(); } } }catch(SQLException e) {} } //重置数据库连接,恢复到原来状态 public static void resetConnection(Connection conn) { try { if (conn != null) { if (conn.getAutoCommit()) { conn.setAutoCommit(false); }else { conn.setAutoCommit(true); } } }catch(SQLException e) {} } public static void main(String[] args) { System.out.println(DbUtil.getConnection()); } }
(2)TestXMLImport类
TestXMLImport类用于读取XML文件中的信息,并写入数据库表中package com.bjpowernode.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.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class TestXMLImport { /* * @param args */ public static void main(String[] args){ String sql="insert into T_XML(NUMERO,REPOSICION,MOMBRE,TURNOS) values(?,?,?,?)"; Connection conn = null; PreparedStatement pstmt = null; try { conn =DbUtil.getConnection(); pstmt =conn.prepareStatement(sql); //找到需要读取的XML文件的位置 Document doc = new SAXReader().read(new File("G:/1.计算机/韦文文/DRP/test_xmlImport/xml/test01.XML")); //提取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"); 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()); //把这条执行语句加到PreparedStatement对象的批处理命令中 pstmt.addBatch(); } //把以上添加到批处理命令中的所有命令一次过提交给数据库来执行 pstmt.executeBatch(); System.out.println("将XML导入数据库成功!"); } catch (Exception e) { e.printStackTrace(); }finally{ DbUtil.close(pstmt); DbUtil.close(conn); } } }
6.总结
(1)XPath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。(2)采用pstmt.addBatch(),把若干sql语句装载到一起,然后一次送到数据库执行,减少了数据的传输时间,执行只需要很短的时间,提高数据交互的效率。
相关文章推荐
- 【DRP】采用dom4j完成XML文件导入数据库
- dom4j 读取xml 数据库配置文件 dataconfig
- Java读取XML配置文件详细总结(dom4j方式)
- Java操作XML文件(2)-读取XML文件
- java实现读取XML文件数据插入到数据库中
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明)
- java项目——Dom4j读取XML文件保存orecal数据库
- java项目——Dom4j读取XML文件连接orecal数据库
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明
- java采用Dom4j读写xml文件
- JAVA读取XML文件并利用该文件对数据库进行配置操作
- 菜鸟学Java(八)——dom4j详解之读取XML文件
- DRP中利用dom4j完成XML文件导入数据库
- DOM4J 读取XML配置文件进行数据库连接
- DOM4J 读取XML配置文件进行数据库连接
- 从数据库中读取数据,并写入xml文件中(dom4j)
- DRP中利用dom4j完成XML文件导入数据库
- Java连接数据库+连续读取文件夹下txt文件+读取出txt文件后字符串简单分割连接处理+导入jar包
- Java从数据库中读取数据到xml文件