# Embedded Derby JDBC database connection URL

This is the standard Derby JDBC connection URL, which you can use for tasks besides connecting to a database.

    jdbc:derby:[subsubprotocol:][databaseName][;attribute=value]*

Subsubprotocol, which is not typically specified, determines how Derby looks for a database: in a directory, in a class path, or in a jar file. Subsubprotocol is one of the following:

- directory The default. Specify this explicitly only to distinguish a database that might be ambiguous with one on the class path.
- classpath Databases are treated as read-only databases, and all databaseNames must begin with at least a slash, because you specify them "relative" to the classpath directory.
- jar Databases are treated as read-only databases. DatabaseNames might require a leading slash, because you specify them "relative" to the jar file.

jar requires an additional element immediately before the database name:

    (pathToArchive)

pathToArchive is the path to the jar or zip file that holds the database.

You typically pass the connection URL as an argument to the JDBC DriverManager.getConnection method call. For example:

    DriverManager.getConnection("jdbc:derby:sample");

You can specify attributes and attribute values to a connection URL. For detailed reference about attributes and values, see the Derby Reference Manual.

Parent topic: Derby embedded basics
Related concepts
Embedded Derby JDBC driver
Getting a nested connection
Accessing a read-only database in a zip/jar file
Using Derby with IDEs
Related tasks
Starting Derby as an embedded database
Related reference
Database connection examples