使用JDBC将数据抽取到XML中
2004-10-09 10:47
288 查看
什么是 JDBC? | 第 1 页(共7 页) |
在不久以前,为了与数据库交互,开发人员必须使用那个数据库的特定 API。这意味着创建一个独立于数据库的应用程序十分困难(如果可能的话)。
JDBC 与 ODBC(或“开放数据库连接”)类似:它提供一个标准的 API 中间层以访问数据库。正如您在左边所看到的,可以使用标准的 JDBC 命令,JDBC 驱动程序将它们转换成数据库自身的 API。
本教程中从没有提及某一特定数据库,因为选择哪一数据库在很大程度上是没有关系的。所有命令都是标准的 JDBC 命令,它们由驱动程序转换成您选择的任一数据库自身的命令。由于这种 API 的独立性,您可以轻松地使用另一个数据库,而不必更改您应用程序中除驱动程序名和可能的连接 URL(在创建连接时将使用)之外的任何东西。
有关下载适合于您的数据库的 JDBC 驱动程序的信息,请参阅参考资料。有超过 150 个 JDBC 驱动程序可以使用,几乎覆盖了每一种数据库。
甚至没有可用的 JDBC 驱动程序的数据库也可以选择。
JBDC-ODBC 桥 | 第 2 页(共7 页) |
JDBC-ODBC 桥不是推荐的访问数据库的方式,这涉及到性能和配置两方面原因 ― 命令必须通过两个 API,并且必须在每台客户机上安装和配置 ODBC 驱动程序 ― 但是如果没有纯 JDBC 驱动程序,也可以用它进行测试和开发。
如果选择使用桥,则通过选择
Start>Settings>Control Panel>ODBC Data Sources来在 Windows 系统上创建一个“系统数据源名称(System Data Source Name (DSN))”。请记下 DSN 名称,因为您将在创建连接时用到它。
设置数据库和驱动程序 | 第 3 页(共7 页) |
一旦创建了数据库,则创建必要的表。本教程只使用一个表
products。它的结构如左边所示。使用适合于您的数据库的步骤来创建表。
请注意:在通常情况下,应该至少在两个相关的表中表示这个数据;但为简单性起见,本示例只使用一个表。
装入数据库驱动程序。这可以是一个 JDBC 驱动程序或 JDBC-ODBC 桥。 创建至数据库的 Connection。 创建一个 Statement对象。该对象实际执行 SQL 或存储过程。 创建一个 ResultSet,然后用执行查询的结果填充(如果目标是检索或直接更新数据)。 从 ResultSet检索或更新数据。 作为“JavaTM 2 SDK 标准版”发行的一部分, java.sql包包含用于访问数据库的“JDBC 2.0 核心 API”。作为“Java 2 SDK 企业版”一部分发行的 javax.sql包包含“JDBC 2.0 可选包 API”。 本教程仅使用“JDBC 2.0 核心 API”中的类。
DriverManager通过尝试创建与每个所知的驱动程序的连接来确定要使用哪一个。应用程序将使用第一个成功连接的驱动程序。 DriverManager有两种方法可以知道驱动程序是否存在。 第一种方法是使用 Class.forName()直接装入它,如本示例中所示。当装入驱动程序类时,它向 DriverManager注册,如下所示: public class Pricing extends Object { public static void main (String args[]){ //For the JDBC-ODBC bridge, use //driverName = "sun.jdbc.odbc.JdbcOdbcDriver" String driverName = "JData2_0.sql.$Driver"; try { Class.forName(driverName); } catch (ClassNotFoundException e) { System.out.println("Error creating class: "+e.getMessage()); } } } [/code] 成功装入驱动程序之后,应用程序可以连接到数据库。 DriverManager可以找到驱动程序的第二种方法是对在 sql.drivers系统特性表中发现的任何驱动程序进行循环。 sql.drivers特性表是由一个冒号分开的潜在驱动程序列表。在动态装入类之前总是先检查该列表,因此如果要使用特定驱动程序,请确保 sql.drivers特性表或者为空或者以您期望的驱动程序开始。
DriverManager通过静态 getConnection()方法进行连接,该方法以数据库的 URL 作为自变量。URL 通常被引用为: jdbc:<sub-protocol>:databasename [/code] 然而,还可以用活动驱动程序理解的任何格式编写引用 URL。有关 URL 的格式,请参考您的 JDBC 驱动程序文档。 涉及到子协议的一种情况是通过 ODBC 连接。如果直接通过 ODBC 访问 DSN 为 pricing的样本数据库,则 URL 可能是: odbc:pricing [/code] 这意味着要通过 JDBC 连接,URL 可能是: jdbc:odbc:pricing [/code] 下面创建了实际的连接: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Pricing extends Object { public static void main (String args[]){ //For the JDBC-ODBC bridge, use //driverName = "sun.jdbc.odbc.JdbcOdbcDriver" //and //connectURL = "jdbc:odbc:pricing" String driverName = "JData2_0.sql.$Driver"; String connectURL = "jdbc:JDataConnect://127.0.0.1/pricing"; Connection db = null; try { Class.forName(driverName); db = DriverManager.getConnection(connectURL); } catch (ClassNotFoundException e) { System.out.println("Error creating class: "+e.getMessage()); } catch (SQLException e) { System.out.println("Error creating connection: "+e.getMessage()); } } } [/code] 一旦成功创建了连接,就可以执行任何需要的数据库操作(例如,插入或更新数据)。
|
相关文章推荐
- HOW TO:使用 Visual C# .NET 向 Microsoft Excel 2002 传输 XML 数据
- HOW TO:在 Visual C# .NET 中使用 System.Xml 合并两个 XML 文档中的数据
- 使用XMLBeans处理XML数据和文档入门 作者:肖菁 (dev2dev ID: powerise) 湖南省长沙铁道学院科创计算机系统集成有限公司软件中心软件工程师
- 使用 Visual C# .NET 向 Microsoft Excel 2002 传输 XML 数据
- 使用FDO封装XML&ADO实现与服务端数据通信
- 311530 HOW TO:在 Visual C# .NET 中使用 System.Xml 合并两个 XML 文档中的数据 (From MKBA)
- Oracle 的数据抽取到SQL Server 2000(在两台不同的PC上,不使用ODBC)
- 使用XSLT将XML数据转换成HTML
- 使用jdom操作xml数据,生成含Jtree的applet
- 使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页面
- Spring Framework 开发参考手册 之十 使用JDBC进行数据访问
- 在JSP开发中使用jdom解析临时存放数据的XML文件
- 使用xml传递数据表中的数据
- 使用jdom操作xml数据,生成含Jtree的applet(转载 Jagie 原创 )
- 使用JavaScript访问XML数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP发送超长XML表单数据
- 使用正则表达式进行xml数据验证
- 使用JS+XML(数据岛)实现分页)
- 使用XSLT将XML数据转换成HTML