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 standalone 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 calling:
Class.forName("foo.bah.Driver")
A JDBC driver may create a DriverAction implementation in order to receive notifications when DriverManager#deregisterDriver has been called.
HSQLDB-Specific Information:
When the HSQL Database Engine Driver class is loaded, it creates an instance of itself and register it with the DriverManager. This means that a user can load and register the HSQL Database Engine driver by calling:
Class.forName("org.hsqldb.jdbc.JDBCDriver")
For detailed information about how to obtain HSQLDB JDBC Connections,
please see JDBCConnection.
Starting with JDBC 4.0 (JDK 1.6), the DriverManager methods
getConnection and getDrivers have been
enhanced to support the Java Standard Edition Service Provider mechanism.
When built under a Java runtime that supports JDBC 4.0, HSQLDB distribution
jars containing the Driver implementation also include the file
META-INF/services/java.sql.Driver. This file contains the fully
qualified class name ('org.hsqldb.jdbc.JDBCDriver') of the HSQLDB implementation
of java.sql.Driver.
Hence, under JDBC 4.0 or greater, applications no longer need to explicitly
load the HSQLDB JDBC driver using Class.forName(). Of course,
existing programs which do load JDBC drivers using
Class.forName() will continue to work without modification.
JDBC 4.2 methods added in Java 8 are generally supported.
java.sql.DriverManager , java.sql.Connection , java.sql.DriverAction
| Modifier and Type | Class and Description |
|---|---|
| private static class |
| Modifier and Type | Field and Description |
|---|---|
| pack-priv static final String | conn_loginTimeout
name of loginTimeout property, can not change |
| public static final JDBCDriver | |
| public final ThreadLocal | threadConnection
As a separate instance of this class is registered with DriverManager for each class loader, the threadConnection is not declared as static. |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public boolean | Returns: true if this driver understands the given URL;
false otherwise
nullthe URL of the database url)Implements java. Retrieves whether the driver thinks that it can open a connection to the given URL. |
| public Connection | Returns: aConnection object that represents a
connection to the URLthe URL of the database to which to connect url, Properties a list of arbitrary string tag/value pairs as
connection arguments. Normally at least a "user" and
"password" property should be included. info)Implements java. Attempts to make a database connection to the given URL. |
| public static Connection | Returns: aConnection object that represents a
connection to the URLthe URL of the database to which to connect url, Properties a list of arbitrary string tag/value pairs as connection
arguments including at least at a "user" and a "password" property info)The static equivalent of the |
| public int | Returns: this driver's major version numberImplements java. Retrieves the driver's major version number. |
| public int | Returns: this driver's minor version numberImplements java. Gets the driver's minor version number. |
| public Logger | Returns: the parent Logger for this driverImplements java. Return the parent Logger of all the Loggers used by this driver. |
| public DriverPropertyInfo[] | Returns: an array ofDriverPropertyInfo objects describing
possible properties. This array may be an empty array if
no properties are required.the URL of the database to which to connect url, Properties a proposed list of tag/value pairs that will be sent on
connect open info)Implements java. Gets information about the possible properties for this driver. |
| public boolean | Returns: true if this driver is JDBC Compliant; false
otherwiseImplements java. Reports whether this driver is a genuine JDBC Compliant driver. |
| conn_loginTimeout | back to summary |
|---|---|
| pack-priv static final String conn_loginTimeout name of loginTimeout property, can not change | |
| driverInstance | back to summary |
|---|---|
| public static final JDBCDriver driverInstance | |
| threadConnection | back to summary |
|---|---|
| public final ThreadLocal<JDBCConnection> threadConnection As a separate instance of this class is registered with DriverManager for each class loader, the threadConnection is not declared as static. The registered instance is kept to allow access to its threadConnection. | |
| JDBCDriver | back to summary |
|---|---|
| public JDBCDriver() Default constructor | |
| acceptsURL | back to summary |
|---|---|
| public boolean acceptsURL(String url) Implements java. Retrieves whether the driver thinks that it can open a connection
to the given URL. Typically drivers will return
| |
| connect | back to summary |
|---|---|
| public Connection connect(String url, Properties info) throws SQLException Implements java. Attempts to make a database connection to the given URL. The driver should return "null" if it realizes it is the wrong kind of driver to connect to the given URL. This will be common, as when the JDBC driver manager is asked to connect to a given URL it passes the URL to each loaded driver in turn. The driver should throw an The Note If a property is specified as part of the HSQLDB-Specific Information: For the HSQL Database Engine, at least "user" and "password" properties should be included in the Properties.From version 1.7.1, two optional properties are supported:
From version 1.8.0.x,
| |
| getConnection | back to summary |
|---|---|
| public static Connection getConnection(String url, Properties info) throws SQLException The static equivalent of the
| |
| getMajorVersion | back to summary |
|---|---|
| public int getMajorVersion() Implements java. Retrieves the driver's major version number. Initially this should be 1.
| |
| getMinorVersion | back to summary |
|---|---|
| public int getMinorVersion() Implements java. Gets the driver's minor version number. Initially this should be 0.
| |
| getParentLogger | back to summary |
|---|---|
| public Logger getParentLogger() throws SQLFeatureNotSupportedException Implements java. Return the parent Logger of all the Loggers used by this driver. This should be the Logger farthest from the root Logger that is still an ancestor of all of the Loggers used by this driver. Configuring this Logger will affect all of the log messages generated by the driver. In the worst case, this may be the root Logger.
| |
| getPropertyInfo | back to summary |
|---|---|
| public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) Implements java. Gets information about the possible properties for this driver.
The HSQLDB-Specific Information: HSQLDB uses the values submitted in info to set the value for each DriverPropertyInfo object returned.Only the connection properties are considered. General database properties are ignored.
| |
| jdbcCompliant | back to summary |
|---|---|
| public boolean jdbcCompliant() Implements java. Reports whether this driver is a genuine JDBC
Compliant driver.
A driver may only report JDBC compliance requires full support for the JDBC API and full support for SQL 92 Entry Level. It is expected that JDBC compliant drivers will be available for all the major commercial databases. This method is not intended to encourage the development of non-JDBC compliant drivers, but is a recognition of the fact that some vendors are interested in using the JDBC API and framework for lightweight databases that do not support full database functionality, or for special databases such as document information retrieval where a SQL implementation may not be feasible.
| |
| Access | Constructor and Description |
|---|---|
| private |
| Modifier and Type | Method and Description |
|---|---|
| public void | deregister()
Implements java. Method called by DriverManager#deregisterDriver(Driver) to notify the JDBC driver that it was de-registered. |
| EmptyDiverAction | back to summary |
|---|---|
| private EmptyDiverAction() | |
| deregister | back to summary |
|---|---|
| public void deregister() Implements java. Doc from java. Method called by DriverManager#deregisterDriver(Driver) to notify the JDBC driver that it was de-registered.
The | |