In an effort
to set an independent database standard API for Java; Sun Microsystems
developed Java Database Connectivity, or JDBC. JDBC offers a generic SQL
database access mechanism that provides a consistent interface to a variety of
RDBMSs. This consistent interface is achieved through the use of “plug-in”
database connectivity modules, or drivers. If a database vendor wishes
to have JDBC support, he or she must provide the driver for each platform that
the database and Java run on.
To gain a
wider acceptance of JDBC, Sun based JDBC’s framework on ODBC. As you discovered
earlier in this chapter, ODBC has widespread support on a variety of platforms.
Basing JDBC on ODBC will allow vendors to bring JDBC drivers to market much
faster than developing a completely new connectivity solution.
JDBC was
announced in March of 1996. It was released for a 90 day public review that
ended June 8, 1996. Because of user input, the final JDBC v1.0 specification
was released soon after.
The remainder of this section will
cover enough information about JDBC for you to know what it is about and how to
use it effectively. This is by no means a complete overview of JDBC. That would
fill an entire book.
JDBC Goals
Few software
packages are designed without goals in mind. JDBC is one that, because of its
many goals, drove the development of the API. These goals, in conjunction with
early reviewer feedback, have finalized the JDBC class library into a solid
framework for building database applications in Java.
The goals that
were set for JDBC are important. They will give you some insight as to why
certain classes and functionalities behave the way they do. The eight design
goals for JDBC are as follows:
- SQL
Level API
The designers felt that their main goal was to define a
SQL interface for Java. Although not the lowest database interface level
possible, it is at a low enough level for higher-level tools and APIs to be
created. Conversely, it is at a high enough level for application programmers
to use it confidently. Attaining this goal allows for future tool vendors to
“generate” JDBC code and to hide many of JDBC’s complexities from the end user.
- SQL
Conformance
SQL
syntax varies as you move from database vendor to database vendor. In an effort
to support a wide variety of vendors, JDBC will allow any query statement to be
passed through it to the underlying database driver. This allows the
connectivity module to handle non-standard functionality in a manner that is
suitable for its users.
- JDBC
must be implemental on top of common database interfaces
The JDBC SQL API must “sit” on top of other common SQL level APIs. This goal allows JDBC to use existing ODBC level drivers by the use of a software interface. This interface would translate JDBC calls to ODBC and vice versa. - Provide
a Java interface that is consistent with the rest of the Java system
Because
of Java’s acceptance in the user community thus far, the designers feel that
they should not stray from the current design of the core Java system.
- Keep
it simple
This
goal probably appears in all software design goal listings. JDBC is no
exception. Sun felt that the design of JDBC should be very simple, allowing for
only one method of completing a task per mechanism. Allowing duplicate
functionality only serves to confuse the users of the API.
- Use
strong, static typing wherever possible
Strong
typing allows for more error checking to be done at compile time; also, less
error appear at runtime.
- Keep
the common cases simple
Because
more often than not, the usual SQL calls used by the programmer are simple SELECT’s, INSERT’s, DELETE’s and UPDATE’s, these queries should be simple
to perform with JDBC. However, more complex SQL statements should also be
possible.
No comments:
Post a Comment