国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

使用JDOM操作XML系列文章一 從數(shù)據(jù)庫中讀取記錄集到層疊式XML文

2019-11-18 15:13:28
字體:
供稿:網(wǎng)友

  注重本系列文件使用環(huán)境:Oracle數(shù)據(jù)和JDOM1.0版本
總計(jì)四篇文件中都使用到以下表和數(shù)據(jù)。
Oracle表結(jié)構(gòu)如下:
/*此表中最要害的就是CID和PID兩個字段,其它的跟據(jù)需要可以增減字段*/
CREATE TABLE SCOTT.COMPANY
(
CID NUMBER(4) NOT NULL, /*記錄ID號*/
CNAME VARCHAR2(20) NOT NULL, /*名字*/
DESCPT VARCHAR2(40) NULL, /*描述*/
PID NUMBER(4) NULL /*父ID號*/
);
/*向表中插入數(shù)據(jù)*/
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, ´系統(tǒng)集成´, ´各種系統(tǒng)集成´, 1 );
INSERT
INTO company( company.cid, company.cname, company.descpt, company.pid )
VALUES( 3, ´軟件開發(fā)´, ´軟件開發(fā)´, 1 );
INSERT
INTO company( company.cid, company.cname, company.descpt, company.pid )
VALUES( 6, ´NetOA開發(fā)組´, ´Net項(xiàng)目開發(fā)´, 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系統(tǒng)集成´, 2 );
INSERT
INTO company( company.cid, company.cname, company.descpt, company.pid )
VALUES( 10, ´linux集成組´, ´Linux相關(guān)系統(tǒng)集成´, 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項(xiàng)目組´, ´J2EE項(xiàng)目開發(fā)´, 3 );
INSERT
INTO company( company.cid, company.cname, company.descpt, company.pid )
VALUES( 15, ´王義´, ´J2EE組王義´, 5 );

package jing.xml;

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

//將數(shù)據(jù)庫表輸出為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);//創(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文檔

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长乐市| 蓝田县| 福鼎市| 金川县| 洪泽县| 临汾市| 静乐县| 和田市| SHOW| 嘉兴市| 丹凤县| 云安县| 柳河县| 丽江市| 安乡县| 花莲县| 内黄县| 渭南市| 邵东县| 封开县| 日照市| 云霄县| 济阳县| 杨浦区| 额尔古纳市| 沙雅县| 呼图壁县| 历史| 从江县| 白朗县| 西乡县| 阿瓦提县| 马尔康县| 海安县| 许昌市| 鹿邑县| 庄河市| 司法| 广安市| 乐山市| 喀喇沁旗|