# JDBC reference

Derby comes with a built-in JDBC driver.

That makes the JDBC API the only API for working with Derby databases. The driver is a native protocol all-Java driver (type number four of types defined by Sun).

This section provides reference information about Derby's implementation of the JDBC API and documents the way it conforms to the JDBC 3.0 and 4.0 APIs.

See the Derby Developer's Guide for task-oriented instructions on working with the driver.

This JDBC driver implements the standard JDBC interface defined by Sun. When invoked from an application running in the same JVM as Derby, the JDBC driver supports connections to a Derby database in embedded mode. No network transport is required to access the database. In client/server mode, the client application dispatches JDBC requests to the JDBC server over a network; the server, in turn, which runs in the same JVM as Derby, sends requests to Derby through the embedded JDBC driver.

The Derby JDBC implementation provides access to Derby databases and supplies all the required JDBC interfaces. Unimplemented aspects of the JDBC driver return an SQLException with a message stating "Feature not implemented" and an SQLState of XJZZZ. These unimplemented parts are for features not supported by Derby.

- java.sql.Driver interface
- java.sql.DriverManager.getConnection method
- java.sql.Connection interface
- java.sql.DatabaseMetaData interface
- java.sql.Statement interface
- java.sql.CallableStatement interface
- java.sql.PreparedStatement interface
- java.sql.ResultSet interface
- java.sql.ResultSetMetaData interface
- java.sql.SQLException class
- java.sql.SQLWarning class
- java.sql.Savepoint interface
- Mapping of java.sql.Types to SQL types
  In Derby, the java.sql.Types are mapped to SQL data types
- JDBC Package for Connected Device Configuration/Foundation Profile (JSR 169)
- JDBC 4.0-only features
- JDBC escape syntax