发信人: 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 (调用层接口)之上(它也是Microsoft's 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.)。我们相信