zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    人生转折点:弃文从理
    人生第一站:大三暑假实习僧
    监听器启动顺序和java常见注解
    java常识和好玩的注释
    182. Duplicate Emails (Easy)
    181. Employees Earning More Than Their Managers (Easy)
    180. Consecutive Numbers (Medium)
    178. Rank Scores (Medium)
    177. Nth Highest Salary (Medium)
    176. Second Highest Salary(Easy)
  • 原文地址:https://www.cnblogs.com/wwawp66/p/4024907.html
Copyright © 2011-2022 走看看