com.taosdata.jdbc

## Class TSDBDriver

- java.lang.Object
- - com.taosdata.jdbc.TSDBDriver

All Implemented Interfaces:
  Driver

    public class TSDBDriver
    extends Object
    implements Driver

The Java SQL framework allows for multiple database drivers. Each driver should supply a class that implements the Driver interface

The DriverManager will try to load as many drivers as it can find and then for any given connection request, it will ask each driver in turn to try to connect to the target URL.

It is strongly recommended that each Driver class should be small and stand alone so that the Driver class can be loaded and queried without bringing in vast quantities of supporting code.

When a Driver class is loaded, it should create an instance of itself and register it with the DriverManager. This means that a user can load and register a driver by doing Class.forName("foo.bah.Driver")

### Field Summary

Fields
`static int` `HOST_NAME_INDEX` Index for host coming out of parseHostPortPair().
`static int` `PORT_NUMBER_INDEX` Index for port coming out of parseHostPortPair().
`static String` `PROPERTY_KEY_CHARSET` Key for the char encoding used by the TSDB client in properties instance
`static String` `PROPERTY_KEY_CONFIG_DIR` Key for the configuration file directory of TSDB client in properties instance
`static String` `PROPERTY_KEY_DBNAME` Key used to retrieve the database value from the properties instance passed to the driver.
`static String` `PROPERTY_KEY_HOST` Key used to retrieve the host value from the properties instance passed to the driver.
`static String` `PROPERTY_KEY_LOCALE` Key for the locale used by the TSDB client in properties instance
`static String` `PROPERTY_KEY_PASSWORD` Key used to retrieve the password value from the properties instance passed to the driver.
`static String` `PROPERTY_KEY_PORT` Key used to retrieve the port number value from the properties instance passed to the driver.
`static String` `PROPERTY_KEY_PROTOCOL`
`static String` `PROPERTY_KEY_TIME_ZONE` Key for the timezone used by the TSDB client in properties instance
`static String` `PROPERTY_KEY_USER` Key used to retrieve the user value from the properties instance passed to the driver.

### Constructor Summary

Constructors
Constructor and Description
`TSDBDriver()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `acceptsURL(String url)`
`Connection` `connect(String url, Properties info)`
`String` `database(Properties props)` Returns the database property from `props`
`int` `getMajorVersion()`
`int` `getMinorVersion()`
`Logger` `getParentLogger()`
`DriverPropertyInfo[]` `getPropertyInfo(String url, Properties info)`
`String` `host(Properties props)` Returns the host property
`boolean` `jdbcCompliant()`
`protected static String[]` `parseHostPortPair(String hostPortPair)` Parses hostPortPair in the form of [host][:port] into an array, with the element of index HOST_NAME_INDEX being the host (or null if not specified), and the element of index PORT_NUMBER_INDEX being the port (or null if not specified).
`Properties` `parseURL(String url, Properties defaults)` example: jdbc:TSDB://127.0.0.1:0/db?user=root&password=your_password
`int` `port(Properties props)` Returns the port number property
`void` `setPropertyValue(Properties property, String[] keyValuePair)`

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

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

### Field Detail

#### PROPERTY_KEY_DBNAME

    public static final String PROPERTY_KEY_DBNAME

Key used to retrieve the database value from the properties instance passed to the driver.

See Also:
  Constant Field Values

#### PROPERTY_KEY_HOST

    public static final String PROPERTY_KEY_HOST

Key used to retrieve the host value from the properties instance passed to the driver.

See Also:
  Constant Field Values

#### PROPERTY_KEY_PASSWORD

    public static final String PROPERTY_KEY_PASSWORD

Key used to retrieve the password value from the properties instance passed to the driver.

See Also:
  Constant Field Values

#### PROPERTY_KEY_PORT

    public static final String PROPERTY_KEY_PORT

Key used to retrieve the port number value from the properties instance passed to the driver.

See Also:
  Constant Field Values

#### PROPERTY_KEY_USER

    public static final String PROPERTY_KEY_USER

Key used to retrieve the user value from the properties instance passed to the driver.

See Also:
  Constant Field Values

#### PROPERTY_KEY_CONFIG_DIR

    public static final String PROPERTY_KEY_CONFIG_DIR

Key for the configuration file directory of TSDB client in properties instance

See Also:
  Constant Field Values

#### PROPERTY_KEY_TIME_ZONE

    public static final String PROPERTY_KEY_TIME_ZONE

Key for the timezone used by the TSDB client in properties instance

See Also:
  Constant Field Values

#### PROPERTY_KEY_LOCALE

    public static final String PROPERTY_KEY_LOCALE

Key for the locale used by the TSDB client in properties instance

See Also:
  Constant Field Values

#### PROPERTY_KEY_CHARSET

    public static final String PROPERTY_KEY_CHARSET

Key for the char encoding used by the TSDB client in properties instance

See Also:
  Constant Field Values

#### PROPERTY_KEY_PROTOCOL

    public static final String PROPERTY_KEY_PROTOCOL

See Also:
  Constant Field Values

#### PORT_NUMBER_INDEX

    public static final int PORT_NUMBER_INDEX

Index for port coming out of parseHostPortPair().

See Also:
  Constant Field Values

#### HOST_NAME_INDEX

    public static final int HOST_NAME_INDEX

Index for host coming out of parseHostPortPair().

See Also:
  Constant Field Values

### Constructor Detail

#### TSDBDriver

    public TSDBDriver()

### Method Detail

#### connect

    public Connection connect(String url,
                              Properties info)
                       throws SQLException

Specified by:
  `connect` in interface `Driver`
Throws:
  `SQLException`

#### parseHostPortPair

    protected static String[] parseHostPortPair(String hostPortPair)
                                         throws SQLException

Parses hostPortPair in the form of [host][:port] into an array, with the element of index HOST_NAME_INDEX being the host (or null if not specified), and the element of index PORT_NUMBER_INDEX being the port (or null if not specified).

Parameters:
  `hostPortPair` - host and port in form of of [host][:port]
Returns:
  array containing host and port as Strings
Throws:
  `SQLException` - if a parse error occurs

#### acceptsURL

    public boolean acceptsURL(String url)
                       throws SQLException

Specified by:
  `acceptsURL` in interface `Driver`
Throws:
  `SQLException`

#### getPropertyInfo

    public DriverPropertyInfo[] getPropertyInfo(String url,
                                                Properties info)
                                         throws SQLException

Specified by:
  `getPropertyInfo` in interface `Driver`
Throws:
  `SQLException`

#### parseURL

    public Properties parseURL(String url,
                               Properties defaults)
                        throws SQLException

example: jdbc:TSDB://127.0.0.1:0/db?user=root&password=your_password

Throws:
  `SQLException`

#### setPropertyValue

    public void setPropertyValue(Properties property,
                                 String[] keyValuePair)

#### getMajorVersion

    public int getMajorVersion()

Specified by:
  `getMajorVersion` in interface `Driver`

#### getMinorVersion

    public int getMinorVersion()

Specified by:
  `getMinorVersion` in interface `Driver`

#### jdbcCompliant

    public boolean jdbcCompliant()

Specified by:
  `jdbcCompliant` in interface `Driver`

#### getParentLogger

    public Logger getParentLogger()
                           throws SQLFeatureNotSupportedException

Specified by:
  `getParentLogger` in interface `Driver`
Throws:
  `SQLFeatureNotSupportedException`

#### host

    public String host(Properties props)

Returns the host property

Parameters:
  `props` - the java.util.Properties instance to retrieve the hostname from.
Returns:
  the host

#### port

    public int port(Properties props)

Returns the port number property

Parameters:
  `props` - the properties to get the port number from
Returns:
  the port number

#### database

    public String database(Properties props)

Returns the database property from `props`

Parameters:
  `props` - the Properties to look for the database property.
Returns:
  the database name.