# Class BasicDataSourceFactory

java.lang.Object
org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory

All Implemented Interfaces:
  `ObjectFactory`

public class BasicDataSourceFactory extends Object implements ObjectFactory
JNDI object factory that creates an instance of `BasicDataSource` that has been configured based on the `RefAddr` values of the specified `Reference`, which must match the names and data types of the `BasicDataSource` bean properties with the following exceptions:

- `connectionInitSqls` must be passed to this factory as a single String using semicolon to delimit the statements whereas `BasicDataSource` requires a collection of Strings.

Since:
  2.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BasicDataSourceFactory()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static BasicDataSource`
  `createDataSource(Properties properties)`
  Creates and configures a `BasicDataSource` instance based on the given properties.
  `Object`
  `getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment)`
  Creates and return a new `BasicDataSource` instance.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### BasicDataSourceFactory

    public BasicDataSourceFactory()

- ## Method Details

  - ### createDataSource

    public static BasicDataSource createDataSource(Properties properties) throws SQLException
    Creates and configures a `BasicDataSource` instance based on the given properties.
    Parameters:
      `properties` - The data source configuration properties.
    Returns:
      A new a `BasicDataSource` instance based on the given properties.
    Throws:
      `SQLException` - Thrown when an error occurs creating the data source.

  - ### getObjectInstance

    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) throws SQLException
    Creates and return a new `BasicDataSource` instance. If no instance can be created, return `null` instead.
    Specified by:
      `getObjectInstance` in interface `ObjectFactory`
    Parameters:
      `obj` - The possibly null object containing location or reference information that can be used in creating an object
      `name` - The name of this object relative to `nameCtx`
      `nameCtx` - The context relative to which the `name` parameter is specified, or `null` if `name` is relative to the default initial context
      `environment` - The possibly null environment that is used in creating this object
    Throws:
      `SQLException` - if an exception occurs creating the instance