网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  使用jdom操作xml系列文章一 从数据库中读取记录集到层叠式xml文     
  文章作者:未知  文章来源:水木森林  
  查看:139次  录入:管理员--2007-11-17  
 
  注意本系列文件使用环境: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 文档生成完毕!");
}
}
 
 
上一篇: 使用jdom操作xml系列文章四 使用jdom和xpath结合查询    下一篇: 使用jdom的xpath来快速定位xml节点
  相关文档
j2ee项目登录方式的改进设计与实现 11-17
java核心编程:卷i——学习小记 11-17
rft与spring结合进行自动化脚本开发之一 11-17
j2ee基础应用:j2ee中sql语句自动构造方法 (1) 10-27
深入理解jsp和jsf 共同打造完美web应用 12-04
用 jsp 创建可重用的模板和数据库脚本 11-17
默认构建器 11-17
java excel api简介(翻译) 11-17
java se 6 新特性: http 增强 11-17
如何用java来计算对数 11-16
java的一些关键特性 11-17
如何使用runtime.addshutdownhook 11-17
java入门及faq__1(5) 11-17
用javamail显示复合邮件的内容 11-16
深入探讨javamail api的使用 11-16
weblogic常见问题提示 11-17
java高级编程:使用打印服务api 11-16
java对domino objects的访问 (3) 11-17
新手入门 解析配置文件的文件问题 11-17
openfans领域模型驱动的尝试 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息