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中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...
随机推荐
- HTML-★★★格式与布局fixed/absolute/relative/z-index/float★★★
很多网页都存在一个悬浮的操作条或者广告区,无论如何上下滚动网页,操作条或广告区都不会动,这个就是div制作,位置锁定在屏幕指定位置,现在我们就学习下网页的格式与布局. position 位置,来给di ...
- 百度地图 Infowidow 内容(content 下标签) 点击事件
需要监听 infowindow 的打开事件 ,查看InfoWindow API 实现 html 点击效果 代码 var infoWindow = that.createDangerInfoWindo ...
- Linux新手随手笔记1.9-使用Apache搭建网站
搭建网站 网站服务:让用户能够通过浏览器访问到的服务器上的文档资源. 对比Windows 和Linux部署服务方法对比 Windows:IIS Linux :Apache ,nginx Ap ...
- Golang开发环境搭建
1.下载golang安装包: 下载地址:https://golang.google.cn/dl/ 2.安装Eclipse 下载goclipse 插件 3.配置 Go 的编译器 4.写代码. packa ...
- SqlServer数据库《基本》
数据库简单说就是行.列组成的二维表 把列称为字段.每一行数据成为记录,能标识每一行的唯一字段称为主键 查询数据表时,索引可以提高查询速度,但是索引同时会降低新增和更新数据时的速度,应为还要更新索引. ...
- Java - 自定义异常(尚学堂第六章异常机制作业计算平均数)
编写一个计算N个学生分数平均分的程序.程序应该提示用户输入N的值,如何必须输入所有N个学生分数.如果用户输入的分数是一个负数,则应该抛出一个异常并捕获,提示“分数必须是正数或者0”.并提示用户再次输入 ...
- Unity QualitySettings.vSyncCount 垂直同步数
QualitySettings.vSyncCount 垂直同步数 Description 描述 The VSync Count. 垂直同步数. The number of VSyncs that sh ...
- 构建私有Docker Registry
1.设置insecure-registry: 可能会出现无法push镜像到私有仓库的问题. 这是因为我们启动的registry服务不是安全可信赖的. 1) sudo vim /etc/default/ ...
- Web测试注意事项
参考文章:http://www.51testing.com/html/07/n-3723307.html 总结下遇到的web测试的时候需要注意的地方: 页面分辨率: 通常是计算机的默认分辨率,但是还 ...
- GITHUB一个新的项目发布
经过一段时间的积累,写了一些代码,发现好多功能有好几个系统都在用,但是公司的开发过程中,并没有一个对通用功能提取整合普遍化的一个流程,所以就自己将在项目开发过程中遇到的一些功能提取出来,并尽量做到普适 ...