XML和数据库.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《XML和数据库.ppt》由会员分享,可在线阅读,更多相关《XML和数据库.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章XML和数据库 课程目标 XML的应用领域 XML导入数据库 XML导出数据库 体验项目 张三张三401800小王小王201500小周小周302000将如下文档中的员工信息解析出来存入将如下文档中的员工信息解析出来存入company 数据库中的数据库中的employee表中,表中,将顾客信息解析出来存入将顾客信息解析出来存入company 数据库中的数据库中的buyer表中:表中:员工信息员工信息 MS 顾客信息顾客信息 XML的应用领域 XML的应用可以分为以下几个方面:的应用可以分为以下几个方面:应用于将大量运算分布在客户端进行,以减少服务器的负载应用于将大量运算分布在客户端进行,以
2、减少服务器的负载 应用于数据转换应用于数据转换应用于将同一数据以不同的面貌展现给不同的用户应用于将同一数据以不同的面貌展现给不同的用户 XML应用于网络代理应用于网络代理 XML成为一种各种程序都能自动理解和成为一种各种程序都能自动理解和处理数据的规范。处理数据的规范。客户可以根据自己的需求选择和制作不同的应用程序来处客户可以根据自己的需求选择和制作不同的应用程序来处理数据,而服务器只须发出同一个理数据,而服务器只须发出同一个XML文件文件 使用使用XML可以使得数据源与显示分离。这一应用将会使可以使得数据源与显示分离。这一应用将会使得网络用户界面趋向个性化、风格化。得网络用户界面趋向个性化、
3、风格化。同一个同一个XML可以被多个用户进行编辑、增减以适应该用可以被多个用户进行编辑、增减以适应该用户的需要户的需要,类似于设置权限,类似于设置权限。XML导出数据库 字段名字段名数据类型数据类型namevarcharageintaddressvarcharphonevarcharLucy19北京北京45951263zhangsan20上海上海85452664Marry22北京北京83556122XML导出单个表的数据导出单个表的数据 以以SQL Server数据库为例,在一个名为数据库为例,在一个名为“mydb”的数据库中,有一张关于的数据库中,有一张关于person信息的表信息的表“my
4、table”,字段信息,字段信息 和数据信息和数据信息 如下:如下:字段信息表字段信息表数据信息表数据信息表import java.sql.*;import javax.xml.parsers.*;import org.apache.crimson.tree.*;import org.w3c.dom.*;import java.io.*;public class DBtoXML1static Connection con;public static void main(String args)Document doc;try/建立数据库连接建立数据库连接String classforname=
5、com.microsoft.jdbc.sqlserver.SQLServerDriver;String url=jdbc:microsoft:sqlserver:/localhost:1433;+databasename=mydb;Class.forName(classforname);Connection con=DriverManager.getConnection(url,sa,);Statement sta=con.createStatement();ResultSet result=sta.executeQuery(SELECT*FROM mytable);/获取获取Document
6、实例实例DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();DocumentBuilder builder=dbf.newDocumentBuilder();doc=builder.newDocument();/创建根节点创建根节点Element people=doc.createElement(people);while(result.next()Element person=doc.createElement(person);people.appendChild(person);Element name=doc.c
7、reateElement(name);/*获取数据库中获取数据库中name字段的值,字段的值,并作为并作为xml文档中文档中name元素的字符数据元素的字符数据*/name.appendChild(doc.createTextNode(result.getString(name);person.appendChild(name);Element age=doc.createElement(age);age.appendChild(doc.createTextNode(result.getInt(age)+);person.appendChild(age);Element addr=doc.cr
8、eateElement(address);addr.appendChild(doc.createTextNode(result.getString(address);person.appendChild(addr);Element phone=doc.createElement(phone);phone.appendChild(doc.createTextNode(result.getString(phone);person.appendChild(phone);doc.appendChild(people);/将将dom树导出到文件中树导出到文件中(XmlDocument)doc).writ
9、e(new FileOutputStream(new File(person.xml);catch(Exception e)e.printStackTrace();程序运行完成后,使用程序运行完成后,使用记事本打开记事本打开“person.xml”文件文件 XML导出多个表关联的数据 如如“mydb”库中有表库中有表“mytable1”和和“mytable2”,他们之间通过外键,他们之间通过外键“personid”而相约束,而相约束,如下:如下:字段名字段名数据类型数据类型personidvarcharusernamevarcharpasswordvarchara001aa12345a002b
10、b987562字段名字段名数据类型数据类型personidvarcharunamevarcharageintaddressvarcharphonevarchara001张三张三20北京北京12461238a002李四李四22北京北京98421354表表mytable1数据信息数据信息表表mytable2字段信息字段信息表表mytable1字段信息字段信息表表mytable2字段信息字段信息import java.sql.*;import javax.xml.parsers.*;import org.apache.crimson.tree.*;import org.w3c.dom.*;impor
11、t java.io.*;public class DBtoXML2static Connection con;public static void main(String args)Document doc;try/连接数据库连接数据库String classforname=com.microsoft.jdbc.sqlserver.SQLServerDriver;String url=jdbc:microsoft:sqlserver:/localhost:1433;+databasename=mydb;Class.forName(classforname);Connection con=Dri
12、verManager.getConnection(url,sa,);Statement sta=con.createStatement();ResultSet result=sta.executeQuery(SELECT*FROM mytable1);/获取获取Document实例实例DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();DocumentBuilder builder=dbf.newDocumentBuilder();doc=builder.newDocument();Element people=doc
13、.createElement(people);while(result.next()Element person=doc.createElement(person);String str=result.getString(personid);person.setAttribute(id,str);people.appendChild(person);Element username=doc.createElement(username);username.appendChild(doc.createTextNode(result.getString(username);person.appen
14、dChild(username);Element pass=doc.createElement(password);pass.appendChild(doc.createTextNode(result.getString(password);person.appendChild(pass);/查询表查询表mytable2并向并向XML文档中添加元素和字符数据文档中添加元素和字符数据ResultSet rs=con.createStatement().executeQuery(SELECT*FROM mytable2+where personid=+str+);while(rs.next()El
15、ement uname=doc.createElement(uname);uname.appendChild(doc.createTextNode(rs.getString(uname);person.appendChild(uname);Element age=doc.createElement(age);age.appendChild(doc.createTextNode(rs.getInt(age)+);person.appendChild(age);Element addr=doc.createElement(address);addr.appendChild(doc.createTe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XML 数据库
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内