关于JDBC的介绍
华南木棉站关于JDBC的介绍发信人: yeal (破光盘), 信区: JAVA
标 题: JDBC(1)
发信站: 华南网木棉站 (Mon Feb 1 00:03:32 1999), 转信1. 介绍
许多开发者和用户都在寻找Java程序中访问数据库的便捷方
法。由于Java是一个健壮,安全,易于使用的,易于理解且可
以从网络中自动download ,所以它成为开发数据库应用的一种
良好的语言基础。它提供了C,C++,Smalltalk, BASIC, COBOL,
and 4GLs的许多优点。许多公司已经开始在Java与DBMS的连接
方面做工作。
许多Java应用开发者都希望能够编写独立于特定DBMS的程
序,而我们也相信一个独立于DBMS的接口将使得与各种各样
DBMS连接变得最为便捷,开发更加迅速。所以我们认为定义
一个通用的SQL数据库存取框架,在各种各样的提供数据库连
接模块上提供统一的界面是十分有意义的。这使程序员可以面
对单一的数据库界面,使数据库无关的Java工具和产品成为可
能,使得数据库连接的开发者可以提供各种各样的连接方案。
我们看到我们定义一个通用低层的,支持基本SQL功能的Java
DataBase Connectivity (JDBC)API的紧迫任务。
幸运的是我们不必从头设计一个SQL API。我们可以把我们的
工作建立在
X/Open SQL CLI (调用层接口)之上(它也是Microsofts ODBC
的基础)。
我们主要任务是定义一个自然的Java接口来与X/Open CLI中定
义的基本的抽象层和概念连接。
JDBC API得到数据库开发厂商,连接开发厂商,ISV,以及应用
开发者的支持是十分重要的。我们相信把我们的工作建立在
ODBC抽象层的基础上将JDBC更加容易得到大家的接受。而且
从技术上来说,ODBC是我们设计工作的一个良好基础。
因为ODBC是一个C语言接口,所以ODBC在Java中直接使用不
适当。从Java中来调用C代码在安全性,健壮性,实现的方便,
可移植性等等方面有许多不便。它使得Java在这些方面的许多
优点得不到发挥。
我们已经在短期里面实现了一个建立在ODBC上的API。长远来
看,我们可以通过其他方式提供实现。
1.1. 注意
我们非常感谢在数据库,数据库连接和数据库工具领域的许多
早期的工作者。他们为JDBC的早期草案提供了很好的意见和
建议。他们的工作对本规范起了不可估量的作用。--
※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.38.240.203]--------------------------------------------------------------------------------
[返回首页] [讨论区]
发信人: yeal (破光盘), 信区: JAVA
标 题: JDBC(2)
发信站: 华南网木棉站 (Mon Feb 1 00:04:05 1999), 转信2. 目标与哲学
这个部分描述了指引这个API开发的目标以及哲学。
2.1. SQL 级 API
我们的主要目标是为Java定义一个“调用级”(call-level)的SQL
接口。着意味着我们主要的注意力集中在执行原原本本的SQL
语句并且取回结果。我们预计高层的API也将被定义,这些可
能将建立在基层的接口上。
这些高层接口包括象直接地、透明地把表里面的数据影射到
Java类里面,用语法树表示更加通用的查询,以及Java内嵌的
SQL语法。
我们希望大量的应用开发工具将使用我们的API。然而我们也
希望程序员能够使用我们的API,尤其是目前这样在Java里没
有任何其他手段(应该是说数据库访问手段)的情况下。
2.2. 遵循SQL
数据库系统支持各式各样的SQL语法和语义,它们相互之间在
比较高级的功能例如外部连接,内嵌过程等方面并不一致,尽
管我们能够盼望着随时间的推移这些部分的SQL可以获得标准
化。同时我们采取这样的态度与立场:
In fact, an application query need not even be SQL, or it may be a
specialized derivative of SQL, e.g. for document or image queries,
designed for specific DBMSs. In order to pass JDBC compliance tests and to be
called "JDBC
COMPLIANT ? we require that a driver support at least ANSI
SQL-2 Entry Level. This gives applications that want wide
portability a guaranteed least common denominator. We believe
ANSI SQL-2 Entry Level is reasonably powerful and is reasonably
widely supported today.
l JDBC允许查询表达式直接传递到底层的数据驱动,这样一
个程序可以获得尽量多的SQL功能,但是可能被DBMS拒
绝。事实上,一个程序的查询甚至可以不是SQL的,或者
是SQL的一个特殊演化,例如:为专门数据库设计的文本
或者图形查询。
l 为了通过JDBC兼容的测试,并且能够被称为JDBC兼容,
我们要求一个驱动至少支持ANSI SQL-2的标准。这使得那
些需要广泛移植性的程序获得一个最小的分母(这句话的原
文是:This gives applications that want wide portability a
guaranteed least common denominator.)。我们相信ANSI
SQL-2是足够强大的,并且是得到足够支持的。--
※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.38.240.203]--------------------------------------------------------------------------------
[返回首页] [讨论区]
发信人: yeal (破光盘), 信区: JAVA
标 题: JDBC(3)
发信站: 华南网木棉站 (Mon Feb 1 00:04:36 1999), 转信2.3. JDBC必须可以建立在现有的数据库接口上
我们必须能够保证 JDBC SQL API 能够建立在普通的SQL
API上,尤其是ODBC。这些要求已经对这个规范的一些部分
产生了影响,尤其是对传出参数(OUT parameter)和大数据块的
处理。
2.4. 必须保证这个接口与JAVA系统的其他部分保持一致
目前对JAVA的积极回应已经十分热烈。很大程度上是由于这
个语言标准以及标准运行时库被认为是一致,简单和强大的。
我们将尽我们所能,提供这个Java数据库接口,这个接口将建
我们希望普通的任务能够是简单的,而不一般的工作是可行
的。
一个普通任务是指一个程序员执行一个简单的没有参数的SQL
语句(例如:SELECT,INSERT,UPDATE,DELETE),然后(例如
SELECT)处理返回的具有简单类型的元组。一个具有传入参数
(IN parameter)的SQL语句也是普通的。
不那么普通但是也是十分重要的情形是当程序员使用有
INOUT,OUT参数的SQL语句。我们也需要支持读写几兆字节
对象的SQL语句,更特别一些的情形包括一个语句返回了多个
结果集合。
我们希望元数据(Meatdata)的使用很少的,只是那些熟练的程序
员以及开发工具才需要处理的问题。元数据存取函数以及动态
类型数据存取函数在这个文档末尾,一般的程序员可以不必关
心这些章节。
2.8. 不同的功能让不同的方法(函数)来实现
(“方法”的原文是:method,这样翻译是跟VB的)
一种界面设计风格是使用很少的过程,提供许多作为参数传递
的控制标志,这样它们可以用来影响很大一个范围内的各种行
为。来表达不同的功能。这趋向与使用很多的方法,但是每个
方法都比较同意理解。
一般来说,Java内核类使用不同的方法(method)。这个步
骤的主要优点是开始学习基本界面的程序员可以不必被那些与
复杂功能相关的参数所困扰。我们力图在JDBC接口上也采用
相同的策略。一般来说采用不同的方法而不是采用不同的标志
和多用途的方法。--
※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.38.240.203]--------------------------------------------------------------------------------
[返回首页] [讨论区]
发信人: yeal (破光盘), 信区: JAVA
标 题: JDBC(4)
发信站: 华南网木棉站 (Mon Feb 1 00:05:20 1999), 转信3. 接口概貌
接口分为两个层次,一个是面向程序开发人员的JDBC API?
另外一个是底层的JDBC Driver API。
3.1. JDBC API
JDBC API 被描述成为彝族抽象的Java接口,似的应用程序远
可以对某个数据库打开连接,执行SQL语句并且处理结果?
错误! 嵌入对象无效。
最重要的接口是:
l java.sql.DriverManager
处理驱动的调入并且对产生新的数据库连接提供支持。
l java.sql.Connection
代表对特定数据库的连接
l java.sql.Statement
代表一个特定的容器,来对一个特定的数据库执行SQL语句。
l java.sql.ResultSet
控制对一个特定语句的行数据的存取
其中 java.sql.Statement 又有两个子类型:
1. java.sql.PreparedStatement
用于执行预编译的SQL语句。
2. java.sql.CallableStatement
用于执行对一个数据库。
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.
--
※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.38.240.203]--------------------------------------------------------------------------------
[返回首页] [讨论区]
发信人: yeal (破光盘), 信区: JAVA
标 题: JDBC(5)
发信站: 华南网
补充:Web开发 , Jsp ,