xml文件读取到数据库

 

第一步,导包

c3p0,dom4j,jaxen,MySQL-connector

第二步  xml文件,config文件

第三步 javabean

第四步 c3p0的工具类

第五步 读取xml文件  SAXReader中的xpath的方式

首先需要map集合添加别名,遍历读取到的文件,

给了list<javabean>

第六步,list<javabean>给了c3p0的连接数据库的类

 

 

 

第一步,导包

c3p0,dom4j,jaxen,MySQL-connector

第二步  xml文件,config文件

xml文件,config文件根据需求具体实现

Xsd的约束

<?xml version="1.0" encoding="UTF-8"?>

<schema

xmlns="http://www.w3.org/2001/XMLSchema"

targetNamespace="xiaoge"

elementFormDefault="qualified">

<element name="group">

<complexType>

<sequence maxOccurs="8" minOccurs="1">

<element name="person">

<complexType>

<sequence>

<element name="name" type="string"></element>

<element name="sex" type="string"></element>

<element name="age" type="string"></element>

</sequence>

</complexType>

</element>

</sequence>

<attribute name="id" type="int" use="required"></attribute>

</complexType>

</element>

</schema>

第三步 javabean

根据需求在具体做

第四步 c3p0的工具类

package com.itheima.util;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Util {

private static final ComboPooledDataSource DATASOURCE = new ComboPooledDataSource();

public static Connection getConn(){

try {

return DATASOURCE.getConnection();

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

public static void release(ResultSet rs, Statement stmt, Connection conn){

if (rs != null) {

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

rs = null;

}

if (stmt != null) {

try {

stmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

stmt = null;

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

conn = null;

}

}

}

 

第五步 读取xml文件  SAXReader中的xpath的方式

首先需要map集合添加别名,遍历读取到的文件,

给了list<javabean>

 

package com.itwjx.xml;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

import org.junit.Test;

import com.itwjx.entity.XMLDomain;

import com.itwjx.util.C3P0Util;

/**

* 数据库名称 demo

*  表名userDomain

*  字段:  id int

*   name varchar

*   birthday date

*   hobby char

* @author WBH

*

*/

public class WrokXmlAns {

@Test

public void readXMLtoDB(){

try {

//读取XML文件数据

List<XMLDomain> domains = readXML("src/aaa.xml");

//将数据保存到数据库

saveXMLDateToDB(domains);

} catch (Exception e) {

e.printStackTrace();

}

}

private List<XMLDomain> readXML(String path) throws DocumentException, ParseException {

SAXReader read = new SAXReader();

Document document = read.read(path);

Map<String, String> map = new HashMap<String, String>();

map.put("wbh", "xiaofan");

read.getDocumentFactory().setXPathNamespaceURIs(map);

List<Element> nodes = document.selectNodes("//wbh:member");

List<XMLDomain> domains = new ArrayList<XMLDomain>();

for (Element element : nodes) {

String id = element.attributeValue("no");

String name = element.element("name").getText();

String birthday = element.element("birthday").getText();

String hobby = element.element("hobby").getText();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

Date date = df.parse(birthday);

XMLDomain domian = new XMLDomain(

Integer.parseInt(id), name,date, hobby);

domains.add(domian);

}

return domains;

}

private void saveXMLDateToDB(List<XMLDomain> domains) {

//

Connection conn = null;

PreparedStatement ps = null;

try {

conn = C3P0Util.getConn();

ps = conn.prepareStatement("insert into userDomain values(?,?,?,?)");

for (XMLDomain user : domains) {

ps.setInt(1, user.getId());

ps.setString(2, user.getName());

ps.setDate(3, new java.sql.Date(user.getBirthday().getTime()));

ps.setString(4, user.getHobby());

ps.addBatch();

}

ps.executeBatch();

} catch (Exception e) {

e.printStackTrace();

} finally {

C3P0Util.release(null, ps, conn);

}

}

}

 

第六步,list<javabean>给了c3p0的连接数据库的类

 

private void saveXMLDateToDB(List<XMLDomain> domains) {

//

Connection conn = null;

PreparedStatement ps = null;

try {

conn = C3P0Util.getConn();

ps = conn.prepareStatement("insert into userDomain values(?,?,?,?)");

for (XMLDomain user : domains) {

ps.setInt(1, user.getId());

ps.setString(2, user.getName());

ps.setDate(3, new java.sql.Date(user.getBirthday().getTime()));

ps.setString(4, user.getHobby());

ps.addBatch();

}

ps.executeBatch();

} catch (Exception e) {

e.printStackTrace();

} finally {

C3P0Util.release(null, ps, conn);

}

}

 

xml文件读取到数据库的更多相关文章

  1. php xml 文件读取 XMLReader

    php xml 文件读取 <?php /** $xmlString = '<xml> <persons count="10"> <person ...

  2. Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库

    Ajax实现将xml文件数据插入数据库的过程所涉及到的内容比较多,所以对于该过程的讲解本人打算根据交互的过程将其分为三个部分,第一部分为构建解析xml文件的javascript库,第二部分为ajax与 ...

  3. Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。

    在上一篇文章中我们成功得到了重新组织后的数据,接下来需要做的便是将数据插入到数据库中了.在与数据库打交道的过程中有一些方法是普遍的,我们将这些通用方法封装到一个DbUtil类中,以便复用,封装好的Db ...

  4. javascript读取xml文件读取节点数据的例子

    分享下用javascript读取xml文件读取节点数据方法. 读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> < ...

  5. 读取xml文件内容到数据库

    前言 前言不搭后语·················· 内容 听某个大牛说他们的公司常常会涉及到从xml文件中读数据到写入到数据库,序列化的时候会遇到这这个问题,将要持久化的数据到xml文件存储起来, ...

  6. XML文件读取工具类

    /// <summary> /// Author: jiangxiaoqiang /// </summary> public class XmlReader { //===== ...

  7. Xml 文件读取

    .NET 读取Xml文件,用到XmlDocument类. 1.要获取文档的根: DocumentElement. 2.Attributes :获取 XmlAttributeCollection 包含此 ...

  8. C# XML文件读取

    using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; usin ...

  9. 【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件

    一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...

随机推荐

  1. Linux新手随手笔记1.9-使用Apache搭建网站

    搭建网站 网站服务:让用户能够通过浏览器访问到的服务器上的文档资源. 对比Windows 和Linux部署服务方法对比 Windows:IIS Linux      :Apache ,nginx Ap ...

  2. node.js调试方法

    第一种方式:node内置的调试器 在程序中添加debugger,然后在启动node程序时,使用debug模式启动 1.node debug my_event.js 2.使用node文档中各种命令,进行 ...

  3. JDBC完成增加-修改-增加-查询

    JDBC的基本使用流程: 增加    1 导入jar包:        导入ojdbc6.jar,在项目上右键 builder path-->add to builder path.    2 ...

  4. 验证客户端的链接合法性和socketserver模块实现并发

    本节内容: 1.验证客户端的链接合法性 2.socketserver模块实现并发 一.验证客户端的链接合法性 首先,我们来探讨一下,什么叫验证合法性, 举个例子:有一天,我开了一个socket服务端, ...

  5. Linux下Python3.5使用pyqt5.11报错 ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtCore.so: undefined symbol: PySlice_AdjustIndices 解决方法

    我用的Linux自带的是Python3.5版本,运行pip3 install PyQt5, 下载的是PyQt5.11,运行PyQt5程序会报错: ImportError: /usr/local/lib ...

  6. CentOS7 firewalld打开关闭防火墙 开放端口

    firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status fir ...

  7. (C语言逻辑运算符!)&&两种定义字符串的方法&&局部变量、全局变量&&内部函数、外部函数。(新手基础知识备忘录)

    (一)      四个逻辑运算符:!(逻辑非) ||(或) &&(与) ^ (异或) 位运算:&(与) |(位或) (二)        如何定义字符串: 1,字符串常量   ...

  8. Linux-文件目录类命令

    l 文件目录类 pwd 指令 基本语法 pwd (功能描述:显示当前工作目录的绝对路径) 应用实例 案例:显示当前工作目录的绝对路径 ls指令 基本语法 ls [选项] [目录或是文件] 常用选项 - ...

  9. ISE报警:关键字 unsigned不可用于verilog

    问题:关键字 unsigned不可用于verilog 解决方案:去掉unsigned

  10. 如何使一个div能够铺满整个页面? && 模态框的制作 && outerHTML

    说明: 使用 ele.outerHTML = '' 这样的方法可以很容易的清除一个元素. 当然也可以使用parent.removeChild() ,但是相较而言,还是使用 outerHTML = '' ...