API_JDBC

来源:互联网 发布:java代码执行顺序 编辑:程序博客网 时间:2024/06/05 17:12

JDBC由一组用 Java 编程语言编写的类和接口组成。JDBC 扩展了 Java 的功能。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯 Java API 来编写数据库应用程序。即JDBC是应用程序与数据库交互的接口(或者说方法)。因为Java是平台无关的,所以使用 Java 编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。将 Java 和 JDBC 结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。

JDBC 的用途是什么?
简单地说,JDBC 可做三件事:

与数据库建立连接,
发送 SQL 语句,
处理结果。

下列代码段给出了以上三步的基本示例:

Connection con = DriverManager.getConnection ("jdbc:oracle:thin:@hostname:DBNAME", "username", "password");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");while (rs.next()) {int x = rs.getInt("a");String s = rs.getString("b");float f = rs.getFloat("c");}
两层模型和三层模型
JDBC API 既支持数据库访问的两层模型,同时也支持三层模型。

在两层模型中,Java applet 或application将直接与数据库进行对话。这将需要一个 JDBC 驱动程序来与所访问的特定数据库管理系统进行通讯。用户的 SQL 语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。网络可以是 Intranet(它可将公司职员连接起来),也可以是 Internet。

在三层模型中,命令先是被发送到服务的“中间层”,然后由它将 SQL 语句发送给数据库。数据库对 SQL 语句进行处理并将结果送回到中间层,中间层再将结果送回给用户。MIS 主管们都发现三层模型很吸引人,因为可用中间层来控制对公司数据的访问和可作的的更新的种类。中间层的另一个好处是,用户可以利用易于使用的高级 API,而中间层将把它转换为相应的低级调用。最后,许多情况下三层结构可提供一些性能上的好处。

到目前为止,中间层通常都用 C 或 C++ 这类语言来编写,这些语言执行速度较快。然而,随着最优化编译器(它把 Java字节代码转换为高效的特定于机器的代码)的引入,用 Java 来实现中间层将变得越来越实际。这将是一个很大的进步,它使人们可以充分利用 Java 的诸多优点(如坚固、多线程和安全等特征)。JDBC 对于从 Java 的中间层来访问数据库非常重要。

连接

DriverManager 类存有已注册的 Driver 类的清单。当调用方法 getConnection 时,它将检查清单中的每个驱动程序,直到找到可与 URL 中指定的数据库进行连接的驱动程序为止。Driver 的方法 connect 使用这个 URL 来建立实际的连接。

JDBC URL 提供了一种标识数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接。

JDBC URL 的标准语法如下所示。它由三部分组成,各部分间用冒号分隔:

JDBC URL 的三个部分可分解如下:

  jdbc ─ 协议。JDBC URL 中的协议总是 jdbc。

    oracle ─ 驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。子协议名的典型示例是 "odbc",该名称是为用于指定 ODBC 风格的数据资源名称的 URL 专门保留的。
如果要用网络命名服务(这样 JDBC URL 中的数据库名称不必是实际名称),则命名服务可以作为子协议。例如,可用如下所示的 URL :

jdbc:dcenaming:accounts-payable

本例中,该 URL 指定了本地 DCE 命名服务应该将
  数据库名称 "accounts-payable" 解析为更为具体的
  可用于连接真实数据库的名称。
    @hostname ─ 一种标识数据库的方法。子名称可以依不同的子协议而变化。它还可以有子名称的子名称(含有驱动程序编程员所选的任何内部语法)。使用子名称的目的是为定位数据库提供足够的信息。然而,位于远程服务器上的数据库需要更多的信息。例如,如果数据库是通过 Internet 来访问的,则在 JDBC URL 中应将网络地址作为子名称的一部份包括进去,且必须遵循如下所示的标准 URL 命名约定:

  //主机名:端口/子协议

假设 "dbnet" 是个用于将某个主机连接到 Internet 上的协议,则 JDBC URL 类似:

jdbc:dbnet://wombat:356/fred




参考:http://hi.baidu.com/carter2009/blog/category/java%BC%BC%CA%F5%D7%A8%CC%E2/index/3

点击打开链接







原创粉丝点击