/* 从数据库中读出数据 */
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