Derby supports
the JDBC API defined for the Connected Device Configuration/Foundation Profile,
also known as JSR169. The features supported are a subset of the JDBC 3.0
specification. Support for JSR169 is limited to the embedded driver. Derby does
not support using the Network Server under JSR169.

To obtain a connection under JSR169 specifications, use the org.apache.derby.jdbc.EmbeddedSimpleDataSource class.
This class is identical in implementation to the org.apache.derby.jdbc.EmbeddedDataSource class.
See the Derby Developer's Guide for information
on using the properties of the org.apache.derby.jdbc.EmbeddedDataSource class.

Some
other features to note concerning the JSR169 implementation using Derby:

Applications must get and set DECIMAL values using alternate
JDBC getXXX and setXXX methods, such as getString() and setString().
Any alternate method that works against a DECIMAL type with JDBC 2.0 or 3.0
will work in JSR169.

Java functions and procedures that use server-side JDBC parameters such
as CONTAINS SQL, READS SQL DATA or MODIFIES
SQL DATA are not supported in JSR169.

The standard API used to obtain a connection (jdbc:default:connection)
is not supported in JSR169. A runtime error may occur when the routine tries
to obtain a connection using jdbc:default:connection.

Diagnostic tables are not supported.

Triggers are not supported.

Encrypted databases are not supported.

DriverManager is not supported. You cannot use DriverManager.getConnection()
to obtain a connection.