JDBC专题介绍(3)

发表于:2007-07-14来源:作者:点击数: 标签:
JDBC专题介绍(3) 3. 接口概貌 接口分为两个层次,一个是面向程序 开发 人员的JDBC API。另外一个是底层的JDBC Driver API。 3. 1. JDBC API JDBC API 被描述成为彝族抽象的 Java 接口,似的应用程序远可以对某个 数据库 打开连接,执行 SQL 语句并且处理结
JDBC专题介绍(3)

3. 接口概貌

   接口分为两个层次,一个是面向程序开发人员的JDBC API。另外一个是底层的JDBC Driver API。

3. 1. JDBC API

   JDBC API 被描述成为彝族抽象的Java接口,似的应用程序远可以对某个数据库打开连接,执行SQL语句并且处理结果。最重要的接口是:

* java.sql.DriverManager 处理驱动的调入并且对产生新的数据库连接提供支持。

* java.sql.Connection 代表对特定数据库的连接。

* java.sql.Statement  代表一个特定的容器,来对一个特定的数据库执行SQL语句。

* java.sql.ResultSet  控制对一个特定语句的行数据的存取。

其中java.sql.Statement又有两个子类型:

1. java.sql.PreparedStatement  用于执行预编译的SQL语句。

2. java.sql.CallableStatement  用于执行对一个数据库内嵌过程的调用。

   下面的章节对JDBC是如何运行的提供了更多描述,整个定义见第13章。另外第15章描述了系统如果获取数据库的元数据信息。

3. 2. JDBC Driver API

   java.sql.Driver在第9章有完整的定义了.大部分JDBC驱动只需要完成这些JDBC API所定义的抽象类就可以了。特别地,所有的driver必须提供对java.sql.Connection, java.sql. State-ment, java.sql.Prepared-Statement, and java.sql.ResultSet的实现。如果目标DBMS提供有OUT参数的内嵌过程,那么还必须提供java.sql.CallableStatement 接口。 每个database driver必须提供一个类:java.sql.Driver以使得系统可以由 java.sql.DriverManager来管理。

   一个显然的driver是在ODBC之上提供对JDBC的实现,从而提供与ODBC接口的JDBC-ODBC 桥,就象前面的图所显示的.由于JDBC放在ODBC之后,所以实现起来简单而且高效。

   另外一个有用的驱动直接接触数据库无关的网络协议。发布一个协议允许多个服务器实现的方法,例如在ODBC或者特定的DBMS上(尽管已经有了一些使用固定协议的产品,但是我们不打算对它们实现标准化。),是可取的。



4. JDBC使用场合

   Before looking at specifics of the JDBC API, an understanding of typical use scenarios is help-ful. There are two common scenarios that must be treated differently for our purposes: applets and applications.

   在看JDBC API之前了解一下典型的使用场合是有帮助的。通常有两种情形必须分别对待:applet和application.

4. 1. Applet

   目前Java使用的最多的从网络中下载的applet,它们作为web文件的一个部分。当中有数据库存取applet和能够使用JDBC来接触数据库的applet。例如,一个用户可能下载一个显示股票历史价格图的applet。这个applet通过internet来从关系数据库中获得股票历史价格。

   最一般的情况里面,对applet的使用是通过不可靠的边界的。例如从另外一个公司或者Internet上获得这些applet。于是称这个情况为"Internet"场合。然而applet也可能通过局域网下载。在这个情况里面,客户机的安全都还是一个问题。

典型的applet在几个方面与传统的数据库应用程序有所不同:

1). 不可靠的applet被严格地限制在他们被允许执行的的操作上。特别地,不允许他们存取本地的文件,切不允许他们对任意的数据库建立网络连接。

2). 就标识和连接网上数据库来说,Internet环境里面的applet面临新的问题。

3). 当数据库可能与你相隔万里的时候,效率的考虑也有所不同了。与局域网相比,Internet上数据库applet可能会碰到十分不同的反应时间。

(未完待续)

原文转自:http://www.ltesting.net