The Java Naming and Directory Interface (JNDI) API can be used in addition to a JDBC technology-based driver manager (JDBC driver manager) to obtain a connection to a database. When an application uses the JNDI API, it specifies a logical name that identifies a particular database instance and JDBC driver for accessing that database. This has the advantage of making the application code independent of a particular JDBC driver and JDBC technology URL.
Connection Pooling
The JDBC API contains ‘hooks’ that allow connection pooling to be implemented on top of the JDBC driver layer. This allows for a single connection cache that spans the different JDBC drivers that may be in use. Since creating and destroying database connections expensive, connection pooling is important for achieving good performance, especially for server applications.
Distributed transaction support
Support for distributed transactions has been added as an extension to the JDBC API. This feature allows a JDBC driver to support the standard 2-phase commit protocol used by the Java Transaction Service (JTS) API.
Other new features
Support for character streams has been added. This means that character data can be received and sent to the database as a stream of internationalized Unicode characters. Methods to allow java .math .Big Decimal values to be returned with full precision have also been added. Support for time zones has been added.