importjava.io.FileOutputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.transform.OutputKeys;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;/** @ author Roger
* @date 2016/5/3
* @description 输入sql语句,将结果写入到xml文件。文件格式按数据库的字段名,字段值格式。
**/
public classpXML {public static void main(String args[]) throwsException{
Connection conn= null;
String sql;
String url= "jdbc:mysql://localhost:3306/test?"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8";try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功加载MySQL驱动程序");
conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
sql= "select * from people";
ResultSet rs=stmt.executeQuery(sql);
System.out.println("查询人员资料:");
DocumentBuilder builder=DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc=builder.newDocument();
Element root= doc.createElement("Info");
doc.appendChild(root);while(rs.next()){
Element people= doc.createElement("People");
System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4));
Element no= doc.createElement("no");
no.appendChild(doc.createTextNode(rs.getString(1)));
people.appendChild(no);
Element name= doc.createElement("name");
name.appendChild(doc.createTextNode(rs.getString(2)));
people.appendChild(name);
Element sex= doc.createElement("sex");
sex.appendChild(doc.createTextNode(rs.getString(3)));
people.appendChild(sex);
Element age= doc.createElement("age");
age.appendChild(doc.createTextNode(rs.getString(4)));
people.appendChild(age);
root.appendChild(people);
}
TransformerFactory tf=TransformerFactory.newInstance();try{
Transformer t=tf.newTransformer();
t.setOutputProperty(OutputKeys.INDENT,"yes");
t.setOutputProperty(OutputKeys.METHOD,"xml");
t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","2");
t.transform(new DOMSource(doc),new StreamResult(new FileOutputStream("d:\\sql.xml"))); //执行上面的设置并且输出到文件中
System.out.println("生成XML文件成功!");
}catch(Exception e){
e.printStackTrace();
}
}catch(SQLException e){
System.out.println("MySql操作错误");
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
conn.close();
}
}
}