public class dBToxmltree { public String url = null; public Connection conn = null; public Document document = null; public dbtoxmltree() throws Exception { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); url = "jdbc:oracle:thin:@192.168.128.250:1521:sample"; conn = DriverManager.getConnection(url, "scott", "tiger"); }
public void digui(int pid,Element element) throws Exception { String sql = "select * from company where pid=" + pid; PReparedStatement pstmt = conn.prepareStatement( sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = pstmt.executeQuery(); ResultSetMetaData rmd = rs.getMetaData(); int colcount = rmd.getColumnCount(); while (rs.next()) { Element element0 = new Element("DSTree"); for(int i=1;i<=colcount;i++){ element0.setAttribute(rmd.getColumnName(i), (rs.getString(i) == null ? "" : rs.getString(i))); } element0.setAttribute("open","false"); element.addContent(element0); digui(rs.getInt("CID"),element0); } rs.close(); pstmt.close();
}
public static void main(String[] args) throws Exception { dbtoxmltree dbxml = new dbtoxmltree(); Element root=new Element("DSTreeRoot"); dbxml.document=new Document(root);//創(chuàng)建文檔ROOT元素 PreparedStatement pstmt = dbxml.conn.prepareStatement( "select * from company order by cid", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = pstmt.executeQuery();
ResultSetMetaData rmd = rs.getMetaData(); int colcount = rmd.getColumnCount(); Element elementcol = new Element("COLTYPE"); for (int i = 1; i <= colcount; i++) { //列屬性 elementcol.setAttribute(rmd.getColumnName(i), rmd.getColumnTypeName(i)); } root.addContent(elementcol); rs.close(); pstmt.close();
dbxml.digui(0,root);
dbxml.conn.close(); XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat()); //格式華輸出,產(chǎn)生縮進(jìn)和換行 Format format = outp.getFormat(); format.setEncoding("GB2312"); //設(shè)置語言 format.setEXPandEmptyElements(true); //設(shè)置輸出空元素為<sample></sample>格式 outp.setFormat(format);
outp.output(dbxml.document, new FileOutputStream("companytree.xml")); //輸出XML文檔