# Derby JDBC driver

Derby consists of both the database engine and an embedded JDBC driver. Applications use JDBC to interact with a database. Applications running on JDK 5 or earlier must load the driver in order to work with the database.

In an embedded environment, loading the driver also starts Derby.

The Derby driver class name for the embedded environment is org.apache.derby.jdbc.EmbeddedDriver.

In a Java application, you typically load the driver with the static Class.forName method or with the jdbc.drivers system property. For example:

    Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

    java -Djdbc.drivers=org.apache.derby.jdbc.EmbeddedDriver applicationClass

For detailed information about loading the Derby JDBC driver, see "java.sql.Driver interface" in the Derby Reference Manual.

If your application runs on JDK 6 or higher, you do not need to explicitly load the `EmbeddedDriver`. In that environment, the driver loads automatically.

If your application shuts down Derby or calls the DriverManager.unload method, and you then want to reload the driver, call the Class.forName().newInstance() method.

Parent topic: Derby embedded basics
Related concepts
Derby JDBC database connection URL
Derby system
A Derby database
Connecting to databases
Working with the database connection URL attributes
Using Derby with IDEs