Several bugs in Timestamp nanos and a few minor bugs in Bignum were
fixed. No API changes were made.
Changes for 1.1
---------------
1. Revised isolation level description
2. Revised getTablePrivileges description to note that a privilege
applies to one or more columns of the table.
3. Revised preserve across commit/rollback metadata to specify positive case while allowing negative case result in partial preservation.
4. Added NO ACTION and SET DEFAULT values for getImportedKeys/getExportedKeys/getCrossReference ON DELETE and ON UPDATE
4.5 Added DEFERRABILITY attribute to getImportedKeys/getExportedKeys/getCrossReference
5. Drop auto close
6. Rename java.sql.Numeric to java.lang.Bignum
7. Note that for maximum portability values less than 256 should not be
used for setMaxFieldSize
8. Changed initialization of SQLState to null from "" to agree with initialization of reason.
9. Clarify definition of Date, Time and Timestamp
10. Added private constructor to DriverManager and Types to prevent instantiation.
11. Added millis constructor for Date, Time and Timestamp
12. Clarified default values for the SQLException, SQLWarning, DriverPropertyInfo and DataTruncation constructors.
What is JDBC?
-----------------------------
JDBC is the Java Database Connectivity API.
The JDBC API defines Java classes to represent database connections,
SQL statements, result sets, database metadata, etc. It allows a Java
programmer to issue SQL statements and process the results.
The JDBC API is implemented via a driver manager that can support
multiple drivers connecting to different databases. JDBC drivers can
either be entirely written in Java so that they can be downloaded as
part of an applet, or they can be implemented using native methods to
bridge to existing database access libraries.
Who to contact?
---------------
You can contact us at jdbc@wombat.eng.sun.com
What environments are supported?
-------------------------------------
JDBC itself is implemented entirely in Java and will run anywhere the JDK is hosted. Use of JDBC requires the use of one or more JDBC drivers. Each driver will have its own database and platform restrictions.
Version 1.01 Changes
--------------------
No changes were made to the JDBC API; however, a number of
clarifications have been added to the 1.01 version. In addition, a more
efficient implementation of the Numeric class is provided; this
contains some addition methods.
1. Use ODBC driver specific precision for setXXX and setObject
2. Removed the JDBC certified driver requirement for
supportsDifferentTableCorrelationNames; this is a restriction that JDBC
drivers do not have to impose.
3. The description of the various SQL identifier case sensitivity and
case storage modes were confusing and as a result the JDBC driver
requirements were not correct. The descriptions were improved and the
driver requirements were corrected.
4. Added a note that JDBC java.io.stream.available() may return 0
whether or note data is available. JDBC drivers may not be able to
provide an accurate count of available data.
5. Statement.getMoreResults termination conditions were not documented
correctly . This was corrected.
6. Noted that Statement.executeUpdate implicitly closes the statement's
current result set.
7. The Driver comments were changed to note that a static section
should create an instance and register it. This was a documentation
error.
8. Remove synchronized from DriverManager.println to prevent deadlocks
with other threads raising exceptions during connect.
9. Fixed parameters for getCrossReference. They were documented in
error.
10. Inhibited SQLException tracing for SQLWarnings; added stack trace
11. Add the following to DatabaseMetaData
* A SQLException will be thrown if a driver does not support a meta
* data method. In the case of methods that returning a ResultSet,
* either a ResultSet (which may be empty) is returned or a
* SQLException is throw.
12. Note that executeQuery never returns a null ResultSet ref
13. Clarify auto commit -
* The commit occurs when the statement completes or the next
* execute occurs, whichever comes first. In the case of
* statements returning a ResultSet, the statement completes when
* the last row of the ResultSet has been retrieved or the
* ResultSet has been closed. In advanced cases, a single
* statement may return multiple results as well as output
* parameter values. Here the commit occurs when all results and
* output param values have been retrieved.
14. Remove ColumnName from the getTablePrivileges ResultSet; this was
added in error.
15. Added null checks for DriverManager getConnection parameters
16. Noted that CallableStatement ResultSets and update counts should be
processed prior to getting output parameter values.
Installation
------------
See the Java web page for info on installing the JDK.
JDBC is provided as both a compressed tar file and a zip file. Use the
appropriate utility for the one you've selected.
If your are installing a zip file be sure to use a version of unzip
that retains long file names and the original directory names.
JDBC installs itself into the jdbc directory. Be sure to add jdbc/classes
to your Java CLASSPATH.
JDBC Implementation
-------------------
JDBC is implemented by the java.sql package.
java.sql contains the following classes:
DriverManager
The DriverManager passes connection requests to the JDBC drivers
DriverPropertyInfo
An instance of a JDBC driver connection property
Types
A list of SQL data type symbolic constants
Date
An extension of java.util.Data that more closesly matches a SQL data
Time
An extension of java.util.Data that more closesly matches a SQL time
Timestamp
An extension of java.util.Data that more closesly matches a SQL timestamp
java.sql contains the following interfaces (JDBC drivers provide their
implementation:
Driver
A class through which the DriverManager (and optionally users) access
JDBC drivers.
Connection
A database connection
Statement
A class that executes simple SQL statements
PreparedStatement
A class specialized for handling parametric SQL statements
CallableStatement
A class specialized for handling database stored procedure calls
ResultSet
A class for accessing the tabular results produced by executing a SQL
query
DatabaseMetaData
A class used to access a variety of information about a Connection's
DBMS and database.
ResultSetMetaData
A class that is used to access a variety of information describing a
ResultSet's attributes
Debugging
---------
The DriverManager provides a trace mechanism that is used by JDBC
drivers to provide a trace of their method calls.
The following line of code enables tracing and sends it to standard