• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 從數據庫中讀取記錄集到層疊式XML

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    從 數據庫 中讀取記錄集到層疊式XML 注意本系列文件使用環境:ORACLE數據和JDOM1.0版本 總計四篇文件中都使用到以下表和數據。 Oracle表結構如下: /*此表中最關鍵的就是CID和PID兩個字段,其它的跟據需要可以增減字段*/ CREATE TABLE SCOTT.COMPANY ( CID NU
    數據庫中讀取記錄集到層疊式XML

    注意本系列文件使用環境:ORACLE數據和JDOM1.0版本
    總計四篇文件中都使用到以下表和數據。
    Oracle表結構如下:
    /*此表中最關鍵的就是CID和PID兩個字段,其它的跟據需要可以增減字段*/
    CREATE TABLE SCOTT.COMPANY
    (
    CID NUMBER(4) NOT NULL, /*記錄ID號*/
    CNAME VARCHAR2(20) NOT NULL, /*名字*/
    DESCPT VARCHAR2(40) NULL, /*描述*/
    PID NUMBER(4) NULL /*父ID號*/
    );
    /*向表中插入數據*/
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 1, ´中南邁特´, ´湖南省長沙市´, 0 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 2, ´系統集成´, ´各種系統集成´, 1 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 3, ´軟件開發´, ´軟件開發´, 1 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 6, ´NetOA開發組´, ´Net項目開發´, 3 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 7, ´王軍´, ´J2EE組王軍´, 5 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 8, ´湘紅´, ´J2EE組湘紅´, 5 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 9, ´Windows集成組´, ´Windows系統集成´, 2 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 10, ´Linux集成組´, ´Linux相關系統集成´, 2 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 11, ´王非´, ´Linux組´, 10 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 12, ´張萬´, ´NetOA組´, 6 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 13, ´李兵´, ´J2EE李兵´, 5 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 14, ´武成´, ´Linux組´, 10 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 4, ´人事部´, ´公司人事管理部門´, 1 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 5, ´J2EE項目組´, ´J2EE項目開發´, 3 );
    INSERT
    INTO company( company.cid, company.cname, company.descpt, company.pid )
    VALUES( 15, ´王義´, ´J2EE組王義´, 5 );


    package jing.xml;

    /**
    * <p>Title: 從數據庫中讀取記錄集到層疊XML文件</p>
    * <p>Description: </p>
    * <p>Copyright: Copyright (c) 2004</p>
    * <p>Company: </p>
    * @author 歐朝敬 13873195792
    * @version 1.0
    */

    //將數據庫表輸出為XML文檔
    import org.jdom.*;
    import org.jdom.output.*;
    import java.sql.*;
    import java.io.*;

    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);//創建文檔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()); //格式華輸出,產生縮進和換行
    Format format = outp.getFormat();
    format.setEncoding("GB2312"); //設置語言
    format.setExpandEmptyElements(true); //設置輸出空元素為<sample></sample>格式
    outp.setFormat(format);

    outp.output(dbxml.document, new FileOutputStream("companytree.xml")); //輸出XML文檔

    System.out.print("XML 文檔生成完畢!");
    }
    }

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>