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
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `BLOB_BUFFER_LENGTH` Deprecated. Use `PropertyNames.blobBufferSize`
    `static java.lang.String` | `CHARSET` Deprecated.
    `static java.lang.String` | `DATABASE` Deprecated.
    `static java.lang.String` | `PASSWORD` Deprecated.
    `static java.lang.String` | `TPB_MAPPING` Deprecated. Use `PropertyNames.tpbMapping`
    `static java.lang.String` | `USER` Deprecated.
    `static java.lang.String` | `USER_NAME` Deprecated. Use `PropertyNames.user`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FBDriver()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `acceptsURL(java.lang.String url)`
    `FirebirdConnection` | `connect(FirebirdConnectionProperties properties)` Connect to the specified database using the specified connection properties.
    `java.sql.Connection` | `connect(java.lang.String url, java.util.Properties info)`
    `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

          @Deprecated
          public static final java.lang.String CHARSET

      Deprecated.
      See Also:
        Constant Field Values

    - #### USER

          @Deprecated
          public static final java.lang.String USER

      Deprecated.
      See Also:
        Constant Field Values

    - #### USER_NAME

          @Deprecated
          public static final java.lang.String USER_NAME

      Deprecated. Use `PropertyNames.user`
      See Also:
        Constant Field Values

    - #### PASSWORD

          @Deprecated
          public static final java.lang.String PASSWORD

      Deprecated.
      See Also:
        Constant Field Values

    - #### DATABASE

          @Deprecated
          public static final java.lang.String DATABASE

      Deprecated.
      See Also:
        Constant Field Values

    - #### BLOB_BUFFER_LENGTH

          @Deprecated
          public static final java.lang.String BLOB_BUFFER_LENGTH

      Deprecated. Use `PropertyNames.blobBufferSize`
      See Also:
        Constant Field Values

    - #### TPB_MAPPING

          @Deprecated
          public static final java.lang.String TPB_MAPPING

      Deprecated. Use `PropertyNames.tpbMapping`
      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. Occurrence of multiple (distinct) aliases for the same property result in a `SQLException`.

      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.

      The behaviour of this method does not necessarily match the behaviour of Jaybird when processing properties during `connect(String, Properties)`, as this method performs additional processing that is skipped during connect.

      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

Copyright © 2001-2025 Jaybird (Firebird JDBC) team. All rights reserved.