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.
JDBC答應查詢表達式直接傳遞到底層的數據驅動,這樣一個程序可以獲得盡量多的SQL功能,但是可能被DBMS拒絕。事實上,一個程序的查詢甚至可以不是SQL的,或者是SQL的一個非凡演化,例如:為專門數據庫設計的文本或者圖形查詢。 為了通過JDBC兼容的測試,并且能夠被稱為JDBC兼容,我們要求一個驅動至少支持ANSI SQL-2的標準。這使得那些需要廣泛移植性的程序獲得一個最小的分母(這句話的原文是: This gives applications that want wide portability a guaranteed least common denominator.)。 我們相信ANSI SQL-2是足夠強大的,并且是得到足夠支持的。
2.3. JDBC必須可以建立在現有的數據庫接口上
我們必須能夠保證 JDBC SQL API 能夠建立在普通的SQL API上,尤其是ODBC。這些要求已經對這個規范的一些部分產生了影響,尤其是對傳出參數(OUT parameter)和大數據塊的處理。
We would PRefer to keep this base API as simple as possible, at least initially. In general we would prefer to provide a single mechanism for performing a particular task,and avoid provid-ing duplicate mechanisms. We will extend the API later if any important functionality is miss-ing.
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.