《《动态Web数据库技术——基于JSP和XML技术实现》-9xml与数据库》.ppt
文本预览下载声明
山东师范大学信息管理学院 王红 王红 XML和数据库 XML 文档是一个数据集合 优点 自我描述性 可移植性 以树结构描述数据 提供部分数据库的功能 缺点 数据存取慢 缺少数据库的功能 XML和数据库 XML 文档在数据量较小和用户较少的环境中可以当作数据库使用 本地 XML 数据库 专门设计用于存储 XML 文档的数据库 9.1.1 将XML数据插入数据库 将 XML 数据插入数据库的步骤: 使用 Class.forName() 方法加载缺省驱动器 使用 DriverManager 对象的 getConnection() 方法建立数据库连接 使用 Connection 对象创建 Statement 对象 将已解析的 XML 文档放在 Document 对象中 使用 getElementsByTagName() 方法检索其元素 使用 Insert 语句将数据插入数据库 将XML中的数据插入数据库 实例 下面例xml2db.java,将candidate.xml文档中的数据存储到一个ACCESS数据库people中 表的结构如图9-1所示 实例 import java.sql.*; import javax.xml.parsers.*; import org.w3c.dom.*; public class xml2db { static Connection con; static String nm, add, tel, fax, email, sql; public static void main(String args[]){ try{ Class.forName(sun.jdbc.odbc.JdbcOdbcDriver ); con = DriverManager.getConnection(jdbc:odbc:people, , ); Statement stmt = con.createStatement(); 实例(续) DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document doc=builder.parse(candidate.xml); NodeList nl =doc.getElementsByTagName(PERSON); for (int i=0;inl.getLength();i++){ Element node=(Element) nl.item(i); String nm = node.getElementsByTagName(“NAME).item(0). getFirstChild().getNodeValue(); …… sql = insert into people values(\+nm+\, \+add+\, \+tel+\,\+fax+\, \+email+\); int ret = stmt.executeUpdate(sql); } stmt.close(); con.close(); }catch(Exception e){e.printStackTrace();} }} 图9-2 xml2db.java运行结果 9.1.2 由数据库中数据生成XML文档 从数据库检索数据生成XML的步骤: 将文件头和根元素写入文件 使用 Class.forName() 方法加载缺省驱动程序 使用 DriverManager 对象的 getConnection() 方法建立数据库连接 使用 Connection 对象创建 Statement 对象 使用 Statement 对象的 executeQuery 方法执行查询 从数据库提取数据并将其插入文件中 将结束元素写入文件 用数据库中的数据生成XML文档 实例 下面举例Sdudents.java,将一个ACCESS数据库students中数据存储到students.xml文档中 表的内容如图9-3所示 实例 import java.sql.*; import java.io.*; import javax.xml.parsers.*; import javax.xml.transform.dom.*; import javax.xml.tran
显示全部