GenXML.java~155~
上传用户:liming9091
上传日期:2014-10-27
资源大小:3376k
文件大小:3k
源码类别:

Java编程

开发平台:

Java

  1. package tsinghuaip;
  2. import java.util.*;
  3. import java.io.*;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8. import java.sql.ResultSet;
  9. import java.sql.ResultSetMetaData;
  10. import java.sql.PreparedStatement;
  11. import org.w3c.dom.Document;
  12. import javax.xml.parsers.DocumentBuilder;
  13. import javax.xml.parsers.DocumentBuilderFactory;
  14. import org.w3c.dom.Element;
  15. import org.w3c.dom.Node;
  16. import org.w3c.dom.NodeList;
  17. import javax.xml.transform.dom.*;
  18. import javax.xml.transform.*;
  19. import javax.xml.transform.stream.StreamResult;
  20. import org.w3c.dom.Text;
  21. public class GenXML {
  22.     private String strXmlFileName; //IP地址XML文件名
  23.     private Connection conn = null;
  24.     private ResultSet rs = null;
  25.     private Statement stmt = null;
  26.     private ResultSetMetaData resultmetadata = null;
  27.     private PreparedStatement statement = null;
  28.     private ResultSet resultset = null;
  29.     private DocumentBuilderFactory docBuilderFactory;
  30.     private DocumentBuilder docBuilder;
  31.     private Document doc;
  32.     private Element root;
  33.     public GenXML() {
  34.         strXmlFileName = new String();
  35.         try {
  36.             docBuilderFactory = DocumentBuilderFactory.newInstance();
  37.             docBuilder = docBuilderFactory.newDocumentBuilder();
  38.             doc = docBuilder.newDocument();
  39.             doc.normalize();
  40.         }
  41.         catch (Exception e) {
  42.             e.printStackTrace();
  43.         }
  44.     }
  45.     //设置XML文件名
  46.     public void SetXmlFileName(String strFileName) {
  47.         strXmlFileName = strFileName;
  48.     }
  49.     public void SaveIPFromDB() throws Exception {
  50.         String strColName = new String();
  51.         String strColVal = new String();
  52.         //进行数据库得连接
  53.         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  54.         String url = "jdbc:microsoft:sqlserver://localhost:1433;" +
  55.             "DatabaseName=CampusIP";
  56.         conn = DriverManager.getConnection(url, "sa", "");
  57.         stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
  58.                                     ResultSet.CONCUR_UPDATABLE);
  59.         statement = conn.prepareStatement("select * from IPInfo");
  60.         resultset = statement.executeQuery();
  61.         resultmetadata = resultset.getMetaData();
  62.         int intCols = resultmetadata.getColumnCount();
  63.         root = doc.createElement("IPADDRESS");
  64.         while (resultset.next()) {
  65.             Element nodeIPPhase = doc.createElement("IPPHASE");
  66.             for (int i = 1; i <= intCols; i++) {
  67.                 strColName = resultmetadata.getColumnName(i);
  68.                 strColVal = resultset.getString(i);
  69.                 Element nodeElement = doc.createElement(strColName);
  70.                 Text data = doc.createTextNode(strColVal);
  71.                 nodeElement.appendChild(data);
  72.                 nodeIPPhase.appendChild(nodeElement);
  73.                 System.out.println(strColVal);
  74.             }
  75.             root.appendChild(nodeIPPhase);
  76.         }
  77.         doc.appendChild(root);
  78.         Source source = new DOMSource(doc);
  79.         File file = new File(strXmlFileName);
  80.         BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(
  81.             strXmlFileName));
  82.         StreamResult result = new StreamResult(bufferedWriter);
  83.         Transformer xformer = TransformerFactory.newInstance().newTransformer();
  84.         xformer.transform(source, result);
  85.     }
  86. }