All Downloads are FREE. Search and download functionalities are using the official Maven repository.

java.sql.Driver Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package java.sql;

import java.util.Properties;

/**
 * An interface to a JDBC driver. Instances are returned by {@link DriverManager}.
 *
 * 

The JDBC driver uses URLs to specify the location of specific data. URL * format typically takes the form " {@code xxxx:yyyy:SpecificData}", where " * {@code xxxx:yyyy}" is referred to as the subprotocol and is normally * the same for all of a particular driver. " {@code SpecificData}" is a string * which identifies the particular data source that the driver should use. * * @see DriverManager */ public interface Driver { /** * Returns whether the driver thinks that it can open a connection to the * given URL. * * @param url * the URL to connect to. * @return {@code true} if the driver thinks that is can open a connection * to the supplied URL, {@code false} otherwise. Typically, the * driver will respond {@code true} if it thinks that it can handle * the subprotocol specified by the driver. * @throws SQLException * if a database error occurs. */ public boolean acceptsURL(String url) throws SQLException; /** * Attempts to make a database connection to a data source specified by a * supplied URL. * * @param url * the URL to connect. * @param info * some properties that should be used in establishing the * connection. The properties consist of name/value pairs of * strings. Normally, a connection to a database requires at * least two properties - for {@code "user"} and {@code * "password"} in order to pass authentication to the database. * @return the connection to the database. * @throws SQLException * if a database error occurs. */ public Connection connect(String url, Properties info) throws SQLException; /** * Gets the driver's major version number. * * @return the major version number of the driver - typically starts at 1. */ public int getMajorVersion(); /** * Gets the driver's minor version number. * * @return the minor version number of the driver - typically starts at 0. */ public int getMinorVersion(); /** * Gets information about possible properties for this driver. *

* This method is intended to provide a listing of possible properties that * the client of the driver must supply in order to establish a connection * to a database. Note that the returned array of properties may change * depending on the supplied list of property values. * * @param url * the URL of the database. An application may call this method * iteratively as the property list is built up - for example, * when displaying a dialog to an end-user as part of the * database login process. * @param info * a set of tag/value pairs giving data that a user may be * prompted to provide in order to connect to the database. * @return an array of {@code DriverPropertyInfo} records which provide * details on which additional properties are required (in addition * to those supplied in the {@code info} parameter) in order to * connect to the database. * @throws SQLException * if a database error occurs. */ public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException; /** * Reports whether this driver is a genuine JDBC CompliantTM driver. The * driver may only return {@code true} if it passes all the JDBC compliance * tests. *

* A driver may not be fully compliant if the underlying database has * limited functionality. * * @return {@code true} if the driver is fully JDBC compliant, {@code false} * otherwise. */ public boolean jdbcCompliant(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy