xml文件读取到数据库
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文件读取到数据库的更多相关文章
- php xml 文件读取 XMLReader
php xml 文件读取 <?php /** $xmlString = '<xml> <persons count="10"> <person ...
- Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库
Ajax实现将xml文件数据插入数据库的过程所涉及到的内容比较多,所以对于该过程的讲解本人打算根据交互的过程将其分为三个部分,第一部分为构建解析xml文件的javascript库,第二部分为ajax与 ...
- Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。
在上一篇文章中我们成功得到了重新组织后的数据,接下来需要做的便是将数据插入到数据库中了.在与数据库打交道的过程中有一些方法是普遍的,我们将这些通用方法封装到一个DbUtil类中,以便复用,封装好的Db ...
- javascript读取xml文件读取节点数据的例子
分享下用javascript读取xml文件读取节点数据方法. 读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> < ...
- 读取xml文件内容到数据库
前言 前言不搭后语·················· 内容 听某个大牛说他们的公司常常会涉及到从xml文件中读数据到写入到数据库,序列化的时候会遇到这这个问题,将要持久化的数据到xml文件存储起来, ...
- XML文件读取工具类
/// <summary> /// Author: jiangxiaoqiang /// </summary> public class XmlReader { //===== ...
- Xml 文件读取
.NET 读取Xml文件,用到XmlDocument类. 1.要获取文档的根: DocumentElement. 2.Attributes :获取 XmlAttributeCollection 包含此 ...
- C# XML文件读取
using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; usin ...
- 【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件
一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...
随机推荐
- Tr A(矩阵快速幂)
A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. Input 数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n(2 <= n < ...
- Linux Mint下FireFox安装Adobe Flash Player
最近在为自己的家里一台很老的机子(由于微软不再支持windows,windows10什么的不是这个老机子可以带的起来的233)选择一个合适的linux系统安装.看来看去,最终选择了排行很靠前,感觉也不 ...
- 颠覆我的Thread.join()
学而时习之,不亦说乎! --<论语> 为什么说是颠覆? 1)任何对象都可以作为锁对象,锁对象的行为都是一样的吗?之前我一直认为锁对 ...
- 设置第三方的SMTP服务
取得授权码:
- HTML学习-01
1.标签描述了基本的链接地址/链接目标,该标签作为HTML文档中所有的链接标签的默认链接. 2.如果<head>里面设置了base,那么后面的img图片需要添加的相对路径. 3.不能使用工 ...
- 转载 python文件复制的方法
Python复制文件的9种方法 51Testing软件测试网 17-11-1614:13 以下是演示"如何在Python中复制文件"的九种方法. 1.shutil copyfile ...
- vscode安装golang插件失败问题
vscode安装golang插件失败问题 dlv go-outline go-symbols gocode-gomod gocode 代码补全 godef 代码跳转 golint gopkgs gor ...
- CSS中margin属性
css中margin块级元素的垂直相邻外边距会合并,比如 方框的上下外边距并不是2px,而是合并为1px了. 设置float属性就可以避免这种同级元素边距合并
- Android中调用高德导航(组件)
btn_.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //调用 ...
- Kubernetes单机安装部署
系统环境: Ubuntu 16.04.2 LTS 软件环境: Docker 1.12.6 Go 1.8.3 Etcd 3.1.8 Flannel 0.7.1 Kubernetes master 1.7 ...