import java.io.FileWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement;
import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.XMLWriter;
/**
* @Author:胡家威
* @CreateTime:2011-9-23 上午11:39:14
* @Description:將資料庫中的資料存放區到XML檔案中
*/
public class DBXML {
public static void main(String[] args) {
DBXML dbxml = new DBXML();
dbxml.Db2XML2();
}
/**
* 這種方法需要知道資料庫中每一列的名稱
*/
public boolean Db2XML() {
try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url = "jdbc:mysql://localhost/blog?user=root&password=root";
Connection connection = DriverManager.getConnection(url);// 注意:connection是java.sql.Connection
Statement statement = connection.createStatement();
String sql = "select * from blog";
ResultSet rs = statement.executeQuery(sql);
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement("blogs");
while (rs.next()) {
Element blogeElement = rootElement.addElement("blog");
blogeElement.addAttribute("ID", rs.getString("id"));
Element cidElement = blogeElement.addElement("categoryid");
cidElement.setText(rs.getString("categoryid"));
Element titleElement = blogeElement.addElement("title");
titleElement.setText(rs.getString("title"));
Element contentElement = blogeElement.addElement("content");
contentElement.setText(rs.getString("content"));
Element timeElement = blogeElement.addElement("createTime");
timeElement.setText(rs.getString("created_time"));
}
rs.close();
XMLWriter xmlWriter = new XMLWriter(new FileWriter("blogs.xml"));
xmlWriter.write(document);
xmlWriter.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 這種方法不需要,它利用了 ResultSetMetaData
*/
public boolean Db2XML2() {
try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url = "jdbc:mysql://localhost/blog?user=root&password=root";
Connection connection = DriverManager.getConnection(url);// 注意:connection是java.sql.Connection
Statement statement = connection.createStatement();
String sql = "select * from blog";
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int cols = rsmd.getColumnCount();
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement("blogs");
while (rs.next()) {
Element blogeElement = rootElement.addElement("blog");
for (int i = 1; i < cols; i++) {// 注意,這裡i是從1開始的!
Element element = blogeElement.addElement(rsmd.getColumnName(i));
element.setText(rs.getString(i));
}
}
rs.close();
XMLWriter xmlWriter = new XMLWriter(new FileWriter("blogs2.xml"));
xmlWriter.write(document);
xmlWriter.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
} |