Class FBSimpleDataSource

All Implemented Interfaces:
Serializable, Wrapper, Referenceable, CommonDataSource, DataSource, AttachmentProperties, BaseProperties, DatabaseConnectionProperties, FirebirdConnectionProperties

public class FBSimpleDataSource extends AbstractConnectionPropertiesDataSource implements DataSource, Serializable, Referenceable
This is a simple implementation of DataSource interface. Connections are physically opened in DataSource.getConnection() method and physically closed in Connection.close() method.

If you need a standalone connection pool, consider using a connection pool implementation like HikariCP, c3p0 or DBCP.

Author:
Roman Rokytskyy, David Jencks
See Also:
  • Field Details

  • Constructor Details

    • FBSimpleDataSource

      public FBSimpleDataSource()
      Creates an instance using the default GDS type (PURE_JAVA).
    • FBSimpleDataSource

      public FBSimpleDataSource(GDSType type)
      Creates an instance using the specified GDS type.
      Parameters:
      type - GDS type
  • Method Details

    • getTransactionParameters

      public TransactionParameterBuffer getTransactionParameters(int isolation)
      Description copied from interface: FirebirdConnectionProperties
      Get the transaction parameter buffer corresponding to the current connection request information.
      Specified by:
      getTransactionParameters in interface FirebirdConnectionProperties
      Parameters:
      isolation - transaction isolation level for which TPB should be returned.
      Returns:
      instance of TransactionParameterBuffer.
    • setTransactionParameters

      public void setTransactionParameters(int isolation, TransactionParameterBuffer tpb)
      Description copied from interface: FirebirdConnectionProperties
      Set transaction parameters for the specified transaction isolation level. The specified TPB is used as a default mapping for the specified isolation level.
      Specified by:
      setTransactionParameters in interface FirebirdConnectionProperties
      Parameters:
      isolation - transaction isolation level.
      tpb - instance of TransactionParameterBuffer containing transaction parameters.
    • setNonStandardProperty

      public void setNonStandardProperty(String propertyMapping)
      Description copied from interface: FirebirdConnectionProperties
      Set the property that does not have corresponding setter method.
      Specified by:
      setNonStandardProperty in interface FirebirdConnectionProperties
      Parameters:
      propertyMapping - parameter value in the propertyName[=propertyValue] form, this allows setting non-standard parameters using configuration files.
    • getProperty

      public String getProperty(String name)
      Description copied from interface: BaseProperties
      Retrieves a string property value by name.

      For properties with an explicit default, this method should return the string presentation of that default, not null. For int or boolean the string equivalent is returned.

      Specified by:
      getProperty in interface BaseProperties
      Parameters:
      name - Property name (not null or empty)
      Returns:
      Value of the property, or null when not set or not a known property
    • setProperty

      public void setProperty(String name, String value)
      Description copied from interface: BaseProperties
      Sets a property by name.

      This method can be used to set all defined properties, but also properties not known by Jaybird. When setting int or boolean properties, the appropriate conversions are applied. Using null will reset to the default value. For boolean properties, an empty string is taken to mean true.

      Specified by:
      setProperty in interface BaseProperties
      Parameters:
      name - Property name (not null or empty)
      value - Property value (use null to apply default)
    • getIntProperty

      public Integer getIntProperty(String name)
      Description copied from interface: BaseProperties
      Retrieves an int property value by name.

      For properties with an explicit default, this method should return the integer presentation of that default. For implementation simplicity, it is allowed to convert any string property to int instead of checking if something is actually an int property

      Specified by:
      getIntProperty in interface BaseProperties
      Parameters:
      name - Property name (not null or empty)
      Returns:
      Integer with value of the property, or null when not set
    • setIntProperty

      public void setIntProperty(String name, Integer value)
      Description copied from interface: BaseProperties
      Sets an int property by name.

      For implementation simplicity, it is allowed to also set string properties. The value set will be the string equivalent.

      Specified by:
      setIntProperty in interface BaseProperties
      Parameters:
      name - Property name (not null or empty)
      value - Property value (use null to apply default)
    • getBooleanProperty

      public Boolean getBooleanProperty(String name)
      Description copied from interface: BaseProperties
      Retrieves a boolean property value by name.

      For properties with an explicit default, this method should return the boolean presentation of that default. For implementation simplicity, it is allowed to convert any string property to boolean instead of checking if something is actually a boolean property

      Specified by:
      getBooleanProperty in interface BaseProperties
      Parameters:
      name - Property name (not null or empty)
      Returns:
      Integer with value of the property, or null when not set
    • setBooleanProperty

      public void setBooleanProperty(String name, Boolean value)
      Description copied from interface: BaseProperties
      Sets a boolean property by name.

      For implementation simplicity, it is allowed to also set string properties. The value set will be the string equivalent.

      Specified by:
      setBooleanProperty in interface BaseProperties
      Parameters:
      name - Property name (not null or empty)
      value - Property value (use null to apply default)
    • connectionPropertyValues

      public Map<ConnectionProperty,Object> connectionPropertyValues()
      Description copied from interface: BaseProperties
      An unmodifiable view on the connection properties held by this BaseProperties implementation.

      Be aware, implementations can have additional properties that are not mapped from ConnectionProperty. Such properties will need to be retrieved in an implementation-specific manner.

      Specified by:
      connectionPropertyValues in interface BaseProperties
      Returns:
      An unmodifiable view on the property values held in this properties instance
    • getReference

      public Reference getReference() throws NamingException
      Specified by:
      getReference in interface Referenceable
      Throws:
      NamingException
    • getConnection

      public Connection getConnection() throws SQLException
      Get JDBC connection with default credentials.
      Specified by:
      getConnection in interface DataSource
      Returns:
      new JDBC connection.
      Throws:
      SQLException - if something went wrong.
    • getConnection

      public Connection getConnection(String username, String password) throws SQLException
      Get JDBC connection with the specified credentials.
      Specified by:
      getConnection in interface DataSource
      Parameters:
      username - username for the connection.
      password - password for the connection.
      Returns:
      new JDBC connection.
      Throws:
      SQLException - if something went wrong.
    • getDescription

      public String getDescription()
      Get description of this datasource.
      Returns:
      description of this datasource.
    • setDescription

      public void setDescription(String description)
      Set description of this datasource.
      Parameters:
      description - description of this datasource.
    • getDataSource

      protected DataSource getDataSource() throws SQLException
      Get underlying connection factory (an instance of FBDataSource class) that will provide JDBC connections.
      Returns:
      JDBC connection factory.
      Throws:
      SQLException - if something went wrong.
    • isWrapperFor

      public boolean isWrapperFor(Class<?> iface) throws SQLException
      Specified by:
      isWrapperFor in interface Wrapper
      Throws:
      SQLException
    • unwrap

      public <T> T unwrap(Class<T> iface) throws SQLException
      Specified by:
      unwrap in interface Wrapper
      Throws:
      SQLException