importjava.io.File;importjava.io.FileOutputStream;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationException;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamResult;importorg.w3c.dom.Document;importorg.w3c.dom.Element;importorg.w3c.dom.Node;public classDatabaseToXMLWithDom {public voidtoXML(){/*** 讲数据记录存入到数组中*/String[] number={""};
String[] name={""};
String[] date={""};
String[] height={""};
Connection connection=null;
PreparedStatement statement=null;
ResultSet rs=null;
connection=JDBCUtilSingle.getInitJDBCUtil().getConnection();
String sql="SELECT * FROM `student` ";try{
statement=connection.prepareStatement(sql);
rs=statement.executeQuery();
rs.last();//讲游标移到结果集的最后一行
int recordAmount=rs.getRow(); //获取记录数据
number=newString[recordAmount];
name=newString[recordAmount];
date=newString[recordAmount];
height=newString[recordAmount];int k=0;
rs.beforeFirst();//讲游标移到第一条记录前
while(rs.next()){
number[k]=rs.getString(1);
name[k]=rs.getString(2);
date[k]=rs.getString(3);
height[k]=String.valueOf(rs.getDouble(4));
k++;
}
}catch(SQLException e) {//TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBCUtilSingle.getInitJDBCUtil().closeConnection(rs, statement, connection);
}/*** 将数据导入到XML文件*/DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
factory.setIgnoringElementContentWhitespace(true); //忽略空白缩进
DocumentBuilder domParser;try{
domParser=factory.newDocumentBuilder();
Document document=domParser.newDocument(); //通过调用newDocument() 方法获取实例
document.setXmlVersion("1.0"); //设置 xml版本号
Element root=document.createElement("学生信息");
document.appendChild(root);for(int k=0;k
Node student=document.createElement("学生");
root.appendChild(student);
Node xuehao=document.createElement("学号");
xuehao.appendChild(document.createTextNode(number[k]));
Node xingming=document.createElement("姓名");
xingming.appendChild(document.createTextNode(name[k]));
Node chusheng=document.createElement("出生日期");
chusheng.appendChild(document.createTextNode(date[k]));
Node shenggao=document.createElement("身高");
shenggao.appendChild(document.createTextNode(height[k]));
student.appendChild(xuehao);
student.appendChild(xingming);
student.appendChild(chusheng);
student.appendChild(shenggao);
TransformerFactory transFactory=TransformerFactory.newInstance(); //工厂对象获取transFactory实例
Transformer transformer=transFactory.newTransformer(); //获取Transformer实例
DOMSource domSource=newDOMSource(document);
File file=new File("newXML2.xml");
FileOutputStream out=newFileOutputStream(file);
StreamResult xmlResult=newStreamResult(out);
transformer.transform(domSource, xmlResult);
out.close();
}
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}/***@paramargs*/
public static voidmain(String[] args) {//TODO Auto-generated method stub
newDatabaseToXMLWithDom().toXML();
}
}