</pre><pre name="code" class="java">package edu.tsinghua.jdbc;
import java.sql.*;
import javax.xml.parsers.*;
import org.apache.crimson.tree.XmlDocument;
import org.w3c.dom.*;
import java.io.*;
/**
* 从数据库中的Student表中读取数据保存到xml文件中
* @author admin
*
*/
public class DBtoXML {
static Connection con;
static String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String url ="jdbc:sqlserver://localhost:1433;DatabaseName=mytest";
static String user = "xyn";
static String password = "xyn";
public static void main(String args[]){
Document doc;
try{
//连接数据库,并且得到数据库中的数据,放在结果集中
Class.forName(driver);
con = DriverManager.getConnection(url, user ,password);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from Student ");
//创建document实例对象
DocumentBuilderFactory bf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = bf.newDocumentBuilder();
doc = db.newDocument();
//创建根节点
Element root = doc.createElement("class");
//将根节点与文档对象关联
doc.appendChild(root);
while(rs!=null&&rs.next()){
//创建 student 元素
Element student = doc.createElement("student");
root.appendChild(student);
//获取数据库中的id值作为student元素的属性
student.setAttribute("id", String.valueOf(rs.getInt("id")));
//创建name元素,并取得数据库中对应的name值作为该元素的内容
Element nameN = doc.createElement("name");
nameN.appendChild(doc.createTextNode(rs.getString("name")));
student.appendChild(nameN);
//创建password元素,并取得数据库中对应的password值作为该元素的内容
Element passwordN = doc.createElement("password");
passwordN.appendChild(doc.createTextNode(rs.getString("password")));
student.appendChild(passwordN);
//创建age元素,并取得数据库中对应的age值作为该元素的内容
Element ageN = doc.createElement("age");
ageN.appendChild(doc.createTextNode(String.valueOf(rs.getInt("age"))));
student.appendChild(ageN);
//创建address元素,并取得数据库中对应的address值作为该元素的内容
Element addressN = doc.createElement("address");
addressN.appendChild(doc.createTextNode(rs.getString("address")));
student.appendChild(addressN);
}
//关闭所有的连接
if(rs!=null){
rs.close();
st.close();
con.close();
}
//将doc中的信息最终以文件的形式保存
XmlDocument xmldoc = (XmlDocument)doc;
File newFile = new File("class.xml");
FileWriter newFileStream = new FileWriter(newFile);
xmldoc.write(newFileStream);
}catch(Exception e){
e.printStackTrace();
}
}
}
将数据库中表的数据保存到XML文件中
最新推荐文章于 2022-10-13 10:16:44 发布