# Syntax of database connection URLs for applications with embedded databases

For applications with embedded databases, the syntax of the database connection URL is

    jdbc:derby: [subsubprotocol:][databasename][;attributes]*

- jdbc:derby:

  In JDBC lingo, derby is the subprotocol for connecting to a Derby database. The subprotocol is always derby and does not vary.

- subsubprotocol:

  subsubprotocol, which is not typically specified, specifies where Derby looks for a database: in a directory, in a classpath, or in a jar file. It is used only in rare instances, usually for read-only databases. subsubprotocol is one of the following:

  - directory
  - 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 or archive. (You do not have to specify classpath as the subsubprotocol; it is implied.)
  - jar Databases are treated as read-only databases.
  jar: requires an additional element immediately before the databaseName:

      (pathToArchive)

  pathToArchive is the path to the jar or zip file that holds the database and includes the name of the jar or zip file.

  See the Java DB Developer's Guide for examples of database connection URLs for read-only databases.

- databaseName

  Specify the databaseName to connect to an existing database or a new one.

  You can specify the database name alone, or with a relative or absolute path. See "Standard Connections-Connecting to Databases in the File System" in Chapter 1 of the Java DB Developer's Guide.

- attributes

  Specify 0 or more database connection URL attributes as detailed in Attributes of the Derby database connection URL.

Parent topic: java.sql.DriverManager.getConnection
Related concepts
Additional SQL syntax
Related reference
Derby database connection URL syntax
Attributes of the Derby database connection URL