xml文件转换成数据库
来源:互联网 发布:人大经济学考研知乎 编辑:程序博客网 时间:2024/06/11 16:07
package com.sxt;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XML2DB {
public static void save(String sql ,Object[] params){
/** test.xml文件
<?xml version="1.0" encoding="gb2312"?>
<employees year="1999">
<employee>
<empid>1111</empid>
<name>zhangsan</name>
<sex>M</sex>
<age>20</age>
<sales>
<sale>
<!--定单号-->
<id>10011</id>
<customer-name>lisi</customer-name>
<money>2000</money>
</sale>
<sale>
<!--定单号-->
<id>10013</id>
<customer-name>lisi</customer-name>
<money>4000</money>
</sale>
</sales>
</employee>
<employee>
<empid>1112</empid>
<name>lisi</name>
<sex>F</sex>
<age>22</age>
<sales>
<sale>
<!--定单号-->
<id>10012</id>
<customer-name>wangmazi</customer-name>
<money>3000</money>
</sale>
<sale>
<!--定单号-->
<id>10014</id>
<customer-name>aaa</customer-name>
<money>3500</money>
</sale>
</sales>
</employee>
</employees>
*/
String driverClass = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "java";
Connection conn = null;
PreparedStatement prst = null;
//1.
try {
Class.forName(driverClass);
//2.
conn = DriverManager.getConnection(url,username,password);
//3.
prst = conn.prepareStatement(sql);
//4.
for(int i = 0 ; i < params.length ; i++){
prst.setObject(i + 1, params[i]);
}
//5.
prst.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
//1.解析
DOMParser parser = new DOMParser();
try {
parser.parse("test.xml");
//2.获得根元素
Document doc = parser.getDocument();
Element root = doc.getDocumentElement();
//3.先获得主表的(员工)各列数据标签集合
NodeList ids = root.getElementsByTagName("empid");
NodeList names = root.getElementsByTagName("name");
NodeList sexes = root.getElementsByTagName("sex");
NodeList ages = root.getElementsByTagName("age");
NodeList employees = root.getElementsByTagName("employee");
for(int i = 0 ; i < ids.getLength() ; i++){
//拿到一行数据
String sql = "INSERT INTO employees(id,name,sex,age,year) VALUES(?,?,?,?,?)";
Object[] params = new Object[5];
String str = ((Element)ids.item(i)).getTextContent();
params[0] = new Integer(Integer.parseInt(str));
params[1] = ((Element)names.item(i)).getTextContent();
params[2] = ((Element)sexes.item(i)).getTextContent();
str = ((Element)ages.item(i)).getTextContent();
params[3] = new Integer(Integer.parseInt(str));
params[4] = root.getAttribute("year");
//保存到数据表
save(sql,params);
NodeList sales = ((Element)employees.item(i)).getElementsByTagName("sale");
NodeList idss = ((Element)employees.item(i)).getElementsByTagName("id");
NodeList customer_names = ((Element)employees.item(i)).getElementsByTagName("customer-name");
NodeList money = ((Element)employees.item(i)).getElementsByTagName("money");
for(int j = 0 ; j < sales.getLength() ; j++){
String sql1 = "INSERT INTO sales(id,empId,customer_name,money) VALUES(?,?,?,?)";
Object[] ps = new Object[4];
String str1 = ((Element)idss.item(j)).getTextContent();
ps[0] = new Integer(Integer.parseInt(str1));
ps[1] = params[0];
ps[2] = ((Element)customer_names.item(j)).getTextContent();
str1 = ((Element)money.item(j)).getTextContent();
ps[3] = new Integer(Integer.parseInt(str1));
save(sql1,ps);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
- xml文件转换成数据库
- php将xml文件转换成数组
- excel转换成数据库
- 使用kettle把XML文档转换成数据表结构
- 如何将rdba转换成数据文件的地址
- Spark2 加载保存文件,数据文件转换成数据框dataframe
- Spark2加载保存文件,数据文件转换成数据框dataframe
- PHP将XML转换成数组/对象
- 把XML转换成数组最简单方法
- c#在wince 下读写文件和转换成数据表
- 将手写字符转换成数据集
- 将json数据格式转换成数据
- php 读取txt文件中的内容,转换成数组
- Win10把文件刻录成数据光盘
- 字符串转换成数字
- ArrayList转换成数组
- 字符串转换成数字
- 字符串转换成数字
- struts hibernate spring 实现分页、排序、复杂条件查询②
- 解析XML
- 发的规划
- 序列化XML
- 发的哈
- xml文件转换成数据库
- asp.net课程设计心得(一)
- 原谅已经浪费的时光
- 警句
- 主题:ssh整合分页
- 任我游
- 给自己的忠告
- 要毕业了
- 正则表达式原来如此简单