# Connections

A Connection object represents a connection with a database.

Within the scope of one Connection, you access only a single Derby database. (Database-side JDBC routines can allow you to access more than one database in some circumstances.) A single application might allow one or more Connections to Derby, either to a single database or to many different databases, provided that all the databases are within the same system.

With DriverManager, you use the connection URL as an argument to get the getConnection method to specify which database to connect to and other details.

The following example shows an application establishing three separate connections to two different databases in the current system.

    Connection conn = DriverManager.getConnection(
        "jdbc:derby:sample");
    System.out.println("Connected to database sample");
    conn.setAutoCommit(false);
    Connection conn2 = DriverManager.getConnection(
        "jdbc:derby:newDB;create=true");
    System.out.println("Created AND connected to newDB");
    conn2.setAutoCommit(false);
    Connection conn3 = DriverManager.getConnection(
        "jdbc:derby:newDB");
    System.out.println("Got second connection to newDB");
    conn3.setAutoCommit(false);

A Connection object has no association with any specific thread; during its lifetime, any number of threads might have access to it, as controlled by the application.

- Statements
  To execute SQL statements against a database, an application uses Statements (java.sql.Statement) and PreparedStatements (java.sql.PreparedStatement), or CallableStatements (java.sql.CallableStatement) for stored procedures.
- ResultSets and Cursors
  Executing a Statement that returns values gives a ResultSet (java.sql.ResultSet), allowing the application to obtain the results of the statement. Only one ResultSet can be open for a particular Statement at any time, as per the JDBC specification.
- Nested connections
  SQL statements can include routine invocations. If these routines interact with the database, they must use a Connection.

Parent topic: The JDBC connection and transaction model
Related concepts
Transactions
Derby system
Derby JDBC database connection URL