dom4j读取xml文档,通过JDBC写入数据库

  最近一段时间,每天上班都把时间用在看文档上,动手写代码的比重大大减少。今天无意中看到公司的一个面试题,顺手拿过来做了一下,简单的几个类没想到竟然用了将近一下午的时间,其间还得不断地依靠google,最后的插入sql甚至只写了关键词insert 漏掉了into。常时间不写,手生的可怕。以后要随时看随时记随时写。

  记一下基本的知识点。

  

读取文档monthTotalData.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <data>
 3     <monthTotalData>
 4         <year>1996</year>
 5         <month>1</month>
 6         <total>200</total>
 7         <employeeId>2</employeeId>
 8     </monthTotalData>
 9
10     <monthTotalData>
11         <year>1996</year>
12         <month>2</month>
13         <total>300</total>
14         <employeeId>2</employeeId>
15     </monthTotalData>
16
17     <monthTotalData>
18         <year>1996</year>
19         <month>5</month>
20         <total>500</total>
21         <employeeId>3</employeeId>
22     </monthTotalData>
23
24     <monthTotalData>
25         <year>1997</year>
26         <month>8</month>
27         <total>500</total>
28         <employeeId>3</employeeId>
29     </monthTotalData>
30
31     <monthTotalData>
32         <year>1997</year>
33         <month>9</month>
34         <total>600</total>
35         <employeeId>2</employeeId>
36     </monthTotalData>
37
38     <monthTotalData>
39         <year>1997</year>
40         <month>10</month>
41         <total>600</total>
42         <employeeId>2</employeeId>
43     </monthTotalData>
44
45     <monthTotalData>
46         <year>2009</year>
47         <month>3</month>
48         <total>600</total>
49         <employeeId>1</employeeId>
50     </monthTotalData>
51
52     <monthTotalData>
53         <year>2010</year>
54         <month>5</month>
55         <total>700</total>
56         <employeeId>1</employeeId>
57     </monthTotalData>
58
59     <monthTotalData>
60         <year>2009</year>
61         <month>9</month>
62         <total>500</total>
63         <employeeId>2</employeeId>
64     </monthTotalData>
65 </data>

实体类MonthTotal.java

 1 package domain;
 2
 3 public class MonthTotal {
 4
 5     private int id;
 6     private int year;
 7     private int month;
 8     private int total;
 9     private int employee_id;
10
11     public MonthTotal(){}
12
13     public MonthTotal(int year, int month, int total, int employeeId) {
14         super();
15         this.year = year;
16         this.month = month;
17         this.total = total;
18         employee_id = employeeId;
19     }
20
21     public int getId() {
22         return id;
23     }
24     public void setId(int id) {
25         this.id = id;
26     }
27     public int getYear() {
28         return year;
29     }
30     public void setYear(int year) {
31         this.year = year;
32     }
33     public int getMonth() {
34         return month;
35     }
36     public void setMonth(int month) {
37         this.month = month;
38     }
39     public int getTotal() {
40         return total;
41     }
42     public void setTotal(int total) {
43         this.total = total;
44     }
45     public int getEmployee_id() {
46         return employee_id;
47     }
48     public void setEmployee_id(int employeeId) {
49         employee_id = employeeId;
50     }
51     @Override
52     public String toString() {
53         return "Month_total [employee_id=" + employee_id + ", id=" + id
54                 + ", month=" + month + ", total=" + total + ", year=" + year
55                 + "]";
56     }
57
58 }

插入方法类InsertDB.java

 1 package insertDB;
 2
 3 import java.io.File;
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.PreparedStatement;
 7 import java.util.ArrayList;
 8 import java.util.List;
 9
10 import org.dom4j.Document;
11 import org.dom4j.DocumentException;
12 import org.dom4j.Element;
13 import org.dom4j.io.SAXReader;
14
15 import domain.MonthTotal;
16
17 public class InsertDB {
18
19     public void insert(MonthTotal month) {
20         try {
21             Class.forName("com.mysql.jdbc.Driver");
22             Connection conn = DriverManager.getConnection(
23                     "jdbc:mysql://localhost:3306/test", "root", "root");
24
25             String sql = "insert into month_total (year, month, employee_id, total) values ("
26                     + month.getYear()
27                     + ","
28                     + month.getMonth()
29                     + ", "
30                     + month.getEmployee_id() + ", " + month.getTotal() + ");  ";
31
32             System.out.println(sql);
33             PreparedStatement psmt = conn.prepareStatement(sql);
34             psmt.execute();
35
36         } catch (Exception e) {
37             e.printStackTrace();
38         }
39     }
40
41     public static void main(String[] args) {
42         InsertDB i = new InsertDB();
43         List<MonthTotal> list = i.getElementsList();
44         for(MonthTotal m : list){
45             i.insert(m);
46         }
47     }
48
49     @SuppressWarnings("unchecked")
50     public List<MonthTotal> getElementsList() {
51         String filePath = "src/monthTotalData.xml";
52         File f = new File(filePath);
53         SAXReader reader = new SAXReader();
54         List<MonthTotal> monthList = new ArrayList<MonthTotal>();
55         try {
56             Document docment = reader.read(f);
57             Element root = docment.getRootElement();
58
59             List<Element> months = new ArrayList<Element>();
60
61             months = root.elements();
62             for (Element e : months) {
63                 int year = Integer.parseInt(e.elementText("year"));
64                 int month = Integer.parseInt(e.elementText("month"));
65                 int employeeId = Integer.parseInt(e.elementText("employeeId"));
66                 int total = Integer.parseInt(e.elementText("total"));
67                 MonthTotal m = new MonthTotal(year, month, total, employeeId);
68
69                 monthList.add(m);
70             }
71
72         } catch (DocumentException e) {
73             e.printStackTrace();
74         }
75         return monthList;
76     }
77 }
时间: 2024-10-10 11:04:47

dom4j读取xml文档,通过JDBC写入数据库的相关文章

Dom4j读取xml文档

package gz.itcast.a_dom4j_read; import java.io.File; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; /** * 第一个Dom4j读取xml文档的例子 * @author APPle * */ public class Demo1 { public static void main(String[] arg

Java 使用 dom4j 读取 xml文档 demo

1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://www.example.org/web-app_2_5" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.example.org/web-a

【学习笔记】关于DOM4J:使用DOM4J解析XML文档

一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org.dom4j这个包里定义: 二.DOM4J的接口 Attribute:定义了XML的属性: Branch:是能够包含子节点的节点,如XML元素(Element)和文档(Documents)定义了一个公共的行为: CDATA:定义了XML的CDATA区域: CharacterData:是一个标识接口,标

javaweb dom4j解析xml文档

1.什么是dom4j dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它.在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能.功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的.如今可以看到越

java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = DocumentHelper.parseText(xmlStr); // XML转字符串 Document document = ...; String text = document.asXML(); //这里的XML DOCUMENT为org.dom4j.Document 二.读取XML文档节点: pack

dom4j与XML文档操作

dom4简介 1.  DOM4J是 dom4j.org 出品的一个开源 XML 解析包.DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP.  DOM4J 最大的特色是使用大量的接口.它的主要接口都在org.dom4j里面定义 Attribute 定义了 XML 的属性. Branch 指能够包含子节点的节点.如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为 CDATA 定义了 XML CDATA 区域 Charac

使用dom4j解析XML文档

dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不准确,也会导致多个同名的方法理解和用法不同 XML: <?xml version="1.0" encoding="utf-8"?> <students> <student age="25"> <name>

java通过dom4j处理xml文档

最近在用dom4j处理xml的数据接口,将java利用dom4j处理xml的过程记录下来. 导入jar包:dom4j-1.6.jar 下载地址:http://www.java2s.com/Code/JarDownload/dom4j/dom4j-1.6.jar.zip 自己写了个xml文档 1 <school> 2 <student> 3 <name>老子</name> 4 <no>20140804</no> 5 <majors

用dom4j对xml文档解析

package com.huowolf.dom4j; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Doc