3、代码的编写
下面开始我们的编写JSP代码转换工作,代码将通过调用JDOM动态生成XML结构,然后借助JDBC访问SQL SERVER数据库动态填充XML内容。
<%@page contentType="text/html;charset=GBK"%> <HTML> <HEAD> <TITLE>用JDOM实现数据库到XML的转换</TITLE> </HEAD> <BODY> <%@page import="org.jdom.*"%> <%@page import="java.*"%> <% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://10.40.14.54:1433;DatabaseName=DB_CUSTOM"; //载入jdbc odbc的驱动程序 String user="lgz"; String password="lgz"; Connection conn= DriverManager.getConnection(url,user,password); //连接数据库 Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //创建一个statement String sql="select * from client"; //定义查询的SQL语句 ResultSet rs=stmt.executeQuery(sql); //执行查询 Document document=new Document(new Element("联系人列表"));//创建文档 ResultSetMetaData rsmd = rs.getMetaData(); //获取字段名 int numberOfColumns = rsmd.getColumnCount(); //获取字段数 int i=0; while(rs.next()){ //将查询结果取出 Element element0=new Element("联系人"); //创建元素 生成JDOM树 document.getRootElement().addContent(element0); for (i=1; i<=numberOfColumns;i++) { String date=new String(rs.getString(i).getBytes("ISO-8859-1"),"gb2312"); //代码转换 Element element=new Element(rsmd.getColumnName(i)).setText(date); element0.addContent(element); } } rs.close(); //关闭结果集 stmt.close(); //关闭statement conn.close(); //关闭连接 XMLOutputter outp = new XMLOutputter(); outp.output(document, new FileOutputStream("d:\\data.xml")); //输出XML文档 out.print("XML 文档生成完毕!"); %> <a href="file:///d /data.xml">点击打开产生的XML文档 </a> </BODY> </HTML> |
4、程序的运行
通过浏览器的8080端口运行该JSP,将产生预期的xml文件。
五、应用分析
XML作为数据交换的标准,得到了越来越广泛的应用。这篇文章阐明了数据库到XML转换的基本方法,从而使各异构平台以及各种格式的数据进行数据交换成为可能。当我们能够把原始的数据转化为XML格式化的形式,就能够以丰富的HTML的格式表示出来。这里列举两个方面的应用:
1、 XML应用服务器:
XML应用服务器实际上是支持XML的Web应用服务器,它们通常是模板驱动的,通过在一个剧本语言中嵌入使用SQL语句来提取数据并动态构建XML文档。
2、 基于XML的桌面应用
我们知道通过XSL可以把相同的数据以不同的数据形式提交给终端客户,一个XSL文件描述了数据的显示方式,你可以把许多XSL和同一个XML文档相连来提供不同的基于HTML的表示,这样事实上,我们就可以建立基于XML的桌面应用程序
采用这种方法主要有两个优点,首先,你可以以平台和语言独立的方式来操作数据,其次,不需要编程你就可以实现对同样数据的不同的视图表示。
……