# ij.dataSource property

#### Function

The `ij.dataSource` property specifies the datasource to be used to access the database. When specifying a datasource, `ij` does not use the DriverManager mechanism to establish connections.

#### Syntax

When you set the `ij.dataSource` property `ij` will automatically try to connect to a database. To establish a connection to a specific database using `ij.dataSource`, set the `ij.dataSource.databaseName` property. If you do not set this property, `ij` will start with an error. If you want to create the database, specify the `ij.dataSource.createDatabase` property as well as `ij.dataSource.databaseName`. Do not specify `ij.protocol` when setting `ij.dataSource` as that would activate the DriverManager mechanism.

    ij.dataSource=datasource class name
    ij.dataSource.databaseName=databasename
    [ij.dataSource.createDatabase=create]

If you do not specify `ij.dataSource.databaseName` and get an error indicating no database was found, you can still connect to a database by using `ij`'s `connect` command. You should not specify the protocol (for example jdbc:derby:) in the `connect` command when using `ij.dataSource`.

#### Example 1

In the following example, `ij` connects to a database named `sample` using an `EmbeddedDataSource`. The `sample` database is created if it does not already exist.

    #
    # If your application runs on JDK 1.6 or higher, then you should
    # specify the JDBC4 variant of this DataSource:
    # org.apache.derby.jdbc.EmbeddedDataSource40.
    # If your application runs with a jvm supporting JSR169, you cannot use
    # org.apache.derby.jdbc.EmbeddedDataSource, instead, use:
    # org.apache.derby.jdbc.EmbeddedSimpleDataSource.
    #
    java -Dij.dataSource=org.apache.derby.jdbc.EmbeddedDataSource
    -Dij.dataSource.databaseName=sample -Dij.dataSource.createDatabase=create
      org.apache.derby.tools.ij
    ij version 10.4
    CONNECTION0*
    * = current connection
    ij>

#### Example 2

In the following example, `ij` starts using an `EmbeddedSimpleDataSource`, without specifying `ij.dataSource.databaseName`. This results in an error indicating no database was found. After the error, the `connect` command is used to create and connect to a database named `smalldb`.

    #
    # Start ij using EmbeddedSimpleDataSource
    #
    java -Dij.dataSource=org.apache.derby.jdbc.EmbeddedSimpleDataSource
      org.apache.derby.tools.ij
    ERROR XJ004: Database '' not found.
    ij version 10.4
    ij> connect 'smalldb;create=true';
    ij>

For more information about DataSources, refer to the JDBC documentation and "Using Derby as a J2EE Resource Manager" in the Java DB Developer's Guide.
Parent topic: ij properties reference
Related reference
ij.connection.connectionName property
ij.database property
ij.driver property
ij.exceptionTrace property
ij.maximumDisplayWidth property
ij.outfile property
ij.password property
ij.protocol property
ij.protocol.protocolName property
ij.showErrorCode property
ij.showNoConnectionsAtStart property
ij.showNoCountForSelect property
ij.URLCheck property
ij.user property
derby.ui.codeset property