# javax.sql: JDBC Extensions

This section documents the JDBC extensions that Derby implements for J2EE compliance. (For more details about these extensions, see http://java.sun.com/products/jdbc/jdbc20.stdext.javadoc/javax/sql/package-summary.html).

- javax.sql.DataSource

  Derby's implementation of DataSource means that it supports JNDI; as a resource manager, it allows a database to be named and registered within a JNDI server. This allows the calling application to access the database by a name (as a data source) instead of through a database connection URL.

- javax.sql.ConnectionPoolDataSource and javax.sql.PooledConnection

  Establishing a connection to the database can be a relatively expensive operation in client/server environments. Establishing the connection once and then using the same connection for multiple requests can dramatically improve the performance of a database.

  The Derby implementation of `ConnectionPoolDataSource` and `PooledConnection` allows a connection pool server to maintain a set of such connections to the resource manager (Derby). In an embedded environment, connections are much cheaper and connection pooling is not necessary.

- javax.sql.XAConnection

  An XAConnection produces an XAResource, and, over its lifetime, many Connections. It allows for distributed transactions.

- javax.sql.XADataSource

  An XADataSource is simply a ConnectionPoolDataSource that produces XAConnections.

In addition, Derby provides three methods for XADataSource, DataSource, and ConnectionPoolDataSource. Derby supports a number of additional data source properties:

- setCreateDatabase(String create)

  Sets a property to create a database at the next connection. The string argument must be "create".

- setShutdownDatabase(String shutdown)

  Sets a property to shut down a database. Shuts down the database at the next connection. The string argument must be "shutdown".

Note: Set these properties before getting the connection.
Parent topic: J2EE Compliance: Java Transaction API and javax.sql Extensions
Related reference
JVM and libraries for J2EE features
The JTA API