现在的位置: 首页 > 综合 > 正文

使用dom4j将数据库中的数据保存到xml文件中

2017年11月30日 ⁄ 综合 ⁄ 共 3674字 ⁄ 字号 评论关闭

/*   从数据库中读出数据  */


package to_dom4j;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
//从数据库中读出数据

public class fromData {
 
    //ReadFrData.java
    
    
     private List<Student> al=null;

     public List<Student> getAl() {
      return getDataFromMysql();
     }
     /**
      * 从数据库中读取数据,放入Student中,然后把student放入list容器
      * @author centre
      * @return 返回一个list容器
      */
       private  List<Student> getDataFromMysql(){
      try {
    
       al=new ArrayList<Student>();
        Connection ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/myhome?user=root&password=admin");
       PreparedStatement ps=ct.prepareStatement("select * from  test");
       ResultSet rs=ps.executeQuery();
       while (rs.next()) {
        Student s=new Student();
        s.setId(Integer.parseInt(rs.getString("id")));
        s.setName(rs.getString("name"));
        s.setAge(Integer.parseInt(rs.getString("age")));
        
        al.add(s);    
       }
       
      } catch (Exception e) {
       System.out.println("getDataFromMysql异常");
       e.printStackTrace();   
      }
      return al;
     }     
    }



/*   使用dom4j  将 数据 保存到xml文件中  */

package to_dom4j;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class toXml {
     private Set<Integer> hset=null;
        /**
         * @athor centre
         * @param pathname String 传入文件的路径名+文件名
         * @return b xml文件生成成功返回true,否则返回false
         */
     public boolean createXml(String pathname){
      boolean b=false;
      //创建文档对象 也就是xml文档
      Document doc=DocumentHelper.createDocument();//创建document
      //其下添加根目录
      Element schoolEle=doc.addElement("school");//添加根元素
      schoolEle.addComment("文档的根school已经创建。");//添加注释
      //创建一个集合
      hset=new HashSet<Integer>();
      //获取从数据库中获得数据并添加到al这个集合中
      List<Student> al=new fromData().getAl();
      for (int i = 0; i < al.size(); i++) {
       Student s=al.get(i);
       // 在通过student 这个对象将数据转存到hash集合中去。
       hset.add(s.getId());
      }
      //通过循环将集合中的数据形成一种dom4j树
      for (Iterator<Integer> it = hset.iterator(); it.hasNext();) {
          Integer classId=it.next();
       Element classEle=schoolEle.addElement("class");
       classEle.addAttribute("name", classId+"");
       for (int i = 0; i < al.size(); i++) {
        Student s=al.get(i);
        if (classId.equals(s.getId())) {
          Element studentEle=classEle.addElement("student");
          studentEle.addElement("id").addText(s.getId()+"");
          studentEle.addElement("name").addText(s.getName());
         
          studentEle.addElement("age").addText(s.getAge()+"");
        }
       }
      }
      
      try {
          // 编写输出格式
          OutputFormat format= null;
       /*自己查帮助文档
        * OutputFormat format=new OutputFormat("  ",true,"gb2312");
        */
       /*
        * 创建一个漂亮的打印格式的OutputFormat
        * 可以通过setEncoding来设置其传输字符串,默认为utf-8
        */
          //OutputFormat 这个类在dom4j的org.dom4j.io.OutputFormat
          //调用静态方法创建一个没有格式的打印方式
       /*
        * OutputFormat format = OutputFormat.createPrettyPrint();
       format.setEncoding("gb2312");
       */
          
       /*创建缩进格式的OutputFormat
        *  
        */
          //生成压缩格式、紧凑格式的xml  其中的compact format 翻译:压缩格式
       format = OutputFormat.createCompactFormat();
      // 将document  也就是这个dom4j树输出到指定 path 下的.xml文件中去
       XMLWriter writer = new XMLWriter(new FileWriter(new File(pathname)),format);
       writer.write(doc);
       writer.close();
       b=true;
       } catch (IOException e) {
       e.printStackTrace();
       }        
      return b;
     }
     public static void main(String[] args){
      String pathname="G://xmlFiles//centre.xml";
      new toXml().createXml(pathname);
     }
    }


 /*  dom4j 包下载 */

http://download.csdn.net/detail/qh_java/7714085


抱歉!评论已关闭.