Package org.firebirdsql.jdbc

## Class FBDriver

- java.lang.Object
- - org.firebirdsql.jdbc.FBDriver

All Implemented Interfaces:
  `java.sql.Driver`, `FirebirdDriver`

    public class FBDriver
    extends java.lang.Object
    implements FirebirdDriver

The Jaybird JDBC Driver implementation for the Firebird database.

Author:
  David Jencks, Mark Rotteveel

### Field Summary

Fields
`static java.lang.String` `BLOB_BUFFER_LENGTH`
`static java.lang.String` `CHARSET`
`static java.lang.String` `DATABASE`
`static java.lang.String` `PASSWORD`
`static java.lang.String` `TPB_MAPPING`
`static java.lang.String` `USER`
`static java.lang.String` `USER_NAME`

### Constructor Summary

Constructors
`FBDriver()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `acceptsURL​(java.lang.String url)`
`java.sql.Connection` `connect​(java.lang.String url, java.util.Properties info)`
`FirebirdConnection` `connect​(FirebirdConnectionProperties properties)` Connect to the specified database using the specified connection properties.
`int` `getMajorVersion()`
`int` `getMinorVersion()`
`java.util.logging.Logger` `getParentLogger()`
`java.sql.DriverPropertyInfo[]` `getPropertyInfo​(java.lang.String url, java.util.Properties info)`
`boolean` `jdbcCompliant()`
`FirebirdConnectionProperties` `newConnectionProperties()` Create new instance of `FirebirdConnectionProperties` that can later be used in `FirebirdDriver.connect(FirebirdConnectionProperties)` call.
`static java.util.Map<java.lang.String,​java.lang.String>` `normalizeProperties​(java.lang.String jdbcUrl, java.util.Properties connectionProperties)` Merges the properties from the JDBC URL and properties object, normalizes them to a standard name.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### CHARSET

    public static final java.lang.String CHARSET

See Also:
  Constant Field Values

#### USER

    public static final java.lang.String USER

See Also:
  Constant Field Values

#### USER_NAME

    public static final java.lang.String USER_NAME

See Also:
  Constant Field Values

#### PASSWORD

    public static final java.lang.String PASSWORD

See Also:
  Constant Field Values

#### DATABASE

    public static final java.lang.String DATABASE

See Also:
  Constant Field Values

#### BLOB_BUFFER_LENGTH

    public static final java.lang.String BLOB_BUFFER_LENGTH

See Also:
  Constant Field Values

#### TPB_MAPPING

    public static final java.lang.String TPB_MAPPING

See Also:
  Constant Field Values

### Constructor Detail

#### FBDriver

    public FBDriver()

### Method Detail

#### connect

    public java.sql.Connection connect​(java.lang.String url,
                                       java.util.Properties info)
                                throws java.sql.SQLException

Specified by:
  `connect` in interface `java.sql.Driver`
Throws:
  `java.sql.SQLException`

#### connect

    public FirebirdConnection connect​(FirebirdConnectionProperties properties)
                               throws java.sql.SQLException

Description copied from interface: `FirebirdDriver`
Connect to the specified database using the specified connection properties.

Specified by:
  `connect` in interface `FirebirdDriver`
Parameters:
  `properties` - instance of `FirebirdConnectionProperties` created in `FirebirdDriver.newConnectionProperties()` method.
Returns:
  new connection to the Firebird database.
Throws:
  `java.sql.SQLException` - if an error happened while connecting to the database.

#### newConnectionProperties

    public FirebirdConnectionProperties newConnectionProperties()

Description copied from interface: `FirebirdDriver`
Create new instance of `FirebirdConnectionProperties` that can later be used in `FirebirdDriver.connect(FirebirdConnectionProperties)` call.

Specified by:
  `newConnectionProperties` in interface `FirebirdDriver`
Returns:
  instance of `FirebirdConnectionProperties`.

#### acceptsURL

    public boolean acceptsURL​(java.lang.String url)
                       throws java.sql.SQLException

Specified by:
  `acceptsURL` in interface `java.sql.Driver`
Throws:
  `java.sql.SQLException`

#### getPropertyInfo

    public java.sql.DriverPropertyInfo[] getPropertyInfo​(java.lang.String url,
                                                         java.util.Properties info)
                                                  throws java.sql.SQLException

Specified by:
  `getPropertyInfo` in interface `java.sql.Driver`
Throws:
  `java.sql.SQLException`

#### getMajorVersion

    public int getMajorVersion()

Specified by:
  `getMajorVersion` in interface `java.sql.Driver`

#### getMinorVersion

    public int getMinorVersion()

Specified by:
  `getMinorVersion` in interface `java.sql.Driver`

#### jdbcCompliant

    public boolean jdbcCompliant()

Specified by:
  `jdbcCompliant` in interface `java.sql.Driver`

#### getParentLogger

    public java.util.logging.Logger getParentLogger()
                                             throws java.sql.SQLFeatureNotSupportedException

Specified by:
  `getParentLogger` in interface `java.sql.Driver`
Throws:
  `java.sql.SQLFeatureNotSupportedException`

#### normalizeProperties

    public static java.util.Map<java.lang.String,​java.lang.String> normalizeProperties​(java.lang.String jdbcUrl,
                                                                                             java.util.Properties connectionProperties)
                                                                                      throws java.sql.SQLException

Merges the properties from the JDBC URL and properties object, normalizes them to a standard name.

If a property with the exact same name is present in both, the property specified in the JDBC url takes precedence. Short and long form `isc_dpb` properties will be merged if both are present, as will two different (non-`isc_dpb`) aliases, but precedence is undefined. If a property is specified in the (short or long) `isc_dpb` form and as an alias, then an exception is thrown.

The property name that is the result of normalization, is implementation specific behaviour, and might change in a future version of Jaybird. When present, the (normalized) property `"database"` will be excluded, this also might change in the future.

Parameters:
  `jdbcUrl` - JDBC Url
  `connectionProperties` - Properties object
Returns:
  New map object with the merged and normalized connection properties
Throws:
  `java.sql.SQLException` - For failures to extract connection properties from `jdbcUrl` (URL decoding errors), or presence of the same property under multiple aliases.
Since:
  4.0.1