📄 connection.java
字号:
/* * @(#)Connection.java 1.13 98/04/24 * * Copyright 1996-1998 by Sun Microsystems, Inc., * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information * of Sun Microsystems, Inc. ("Confidential Information"). You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Sun. */package java.sql;/** * <P>A Connection represents a session with a specific * database. Within the context of a Connection, SQL statements are * executed and results are returned. * * <P>A Connection's database is able to provide information * describing its tables, its supported SQL grammar, its stored * procedures, the capabilities of this connection, etc. This * information is obtained with the getMetaData method. * * <P><B>Note:</B> By default the Connection automatically commits * changes after executing each statement. If auto commit has been * disabled, an explicit commit must be done or database changes will * not be saved. * * @see DriverManager#getConnection * @see Statement * @see ResultSet * @see DatabaseMetaData */public interface Connection { /** * SQL statements without parameters are normally * executed using Statement objects. If the same SQL statement * is executed many times, it is more efficient to use a * PreparedStatement * * JDBC 2.0 * * Result sets created using the returned Statement will have * forward-only type, and read-only concurrency, by default. * * @return a new Statement object * @exception SQLException if a database-access error occurs. */ Statement createStatement() throws SQLException; /** * A SQL statement with or without IN parameters can be * pre-compiled and stored in a PreparedStatement object. This * object can then be used to efficiently execute this statement * multiple times. * * <P><B>Note:</B> This method is optimized for handling * parametric SQL statements that benefit from precompilation. If * the driver supports precompilation, prepareStatement will send * the statement to the database for precompilation. Some drivers * may not support precompilation. In this case, the statement may * not be sent to the database until the PreparedStatement is * executed. This has no direct affect on users; however, it does * affect which method throws certain SQLExceptions. * * JDBC 2.0 * * Result sets created using the returned PreparedStatement will have * forward-only type, and read-only concurrency, by default. * * @param sql a SQL statement that may contain one or more '?' IN * parameter placeholders * @return a new PreparedStatement object containing the * pre-compiled statement * @exception SQLException if a database-access error occurs. */ PreparedStatement prepareStatement(String sql) throws SQLException; /** * A SQL stored procedure call statement is handled by creating a * CallableStatement for it. The CallableStatement provides * methods for setting up its IN and OUT parameters, and * methods for executing it. * * <P><B>Note:</B> This method is optimized for handling stored * procedure call statements. Some drivers may send the call * statement to the database when the prepareCall is done; others * may wait until the CallableStatement is executed. This has no * direct affect on users; however, it does affect which method * throws certain SQLExceptions. * * JDBC 2.0 * * Result sets created using the returned CallableStatement will have * forward-only type, and read-only concurrency, by default. * * @param sql a SQL statement that may contain one or more '?' * parameter placeholders. Typically this statement is a JDBC * function call escape string. * @return a new CallableStatement object containing the * pre-compiled SQL statement * @exception SQLException if a database-access error occurs. */ CallableStatement prepareCall(String sql) throws SQLException; /** * A driver may convert the JDBC sql grammar into its system's * native SQL grammar prior to sending it; nativeSQL returns the * native form of the statement that the driver would have sent. * * @param sql a SQL statement that may contain one or more '?' * parameter placeholders * @return the native form of this statement * @exception SQLException if a database-access error occurs. */ String nativeSQL(String sql) throws SQLException; /** * If a connection is in auto-commit mode, then all its SQL * statements will be executed and committed as individual * transactions. Otherwise, its SQL statements are grouped into * transactions that are terminated by either commit() or * rollback(). By default, new connections are in auto-commit * mode. * * The commit occurs when the statement completes or the next * execute occurs, whichever comes first. In the case of * statements returning a ResultSet, the statement completes when * the last row of the ResultSet has been retrieved or the * ResultSet has been closed. In advanced cases, a single * statement may return multiple results as well as output * parameter values. Here the commit occurs when all results and * output param values have been retrieved. * * @param autoCommit true enables auto-commit; false disables * auto-commit. * @exception SQLException if a database-access error occurs. */ void setAutoCommit(boolean autoCommit) throws SQLException; /** * Get the current auto-commit state. * * @return Current state of auto-commit mode. * @exception SQLException if a database-access error occurs. * @see #setAutoCommit */ boolean getAutoCommit() throws SQLException; /** * Commit makes all changes made since the previous * commit/rollback permanent and releases any database locks * currently held by the Connection. This method should only be * used when auto commit has been disabled. * * @exception SQLException if a database-access error occurs. * @see #setAutoCommit */ void commit() throws SQLException; /** * Rollback drops all changes made since the previous * commit/rollback and releases any database locks currently held * by the Connection. This method should only be used when auto * commit has been disabled. * * @exception SQLException if a database-access error occurs. * @see #setAutoCommit */ void rollback() throws SQLException; /** * In some cases, it is desirable to immediately release a * Connection's database and JDBC resources instead of waiting for * them to be automatically released; the close method provides this * immediate release. * * <P><B>Note:</B> A Connection is automatically closed when it is * garbage collected. Certain fatal errors also result in a closed * Connection. * * @exception SQLException if a database-access error occurs. */ void close() throws SQLException; /** * Tests to see if a Connection is closed. * * @return true if the connection is closed; false if it's still open * @exception SQLException if a database-access error occurs. */ boolean isClosed() throws SQLException; //====================================================================== // Advanced features: /** * A Connection's database is able to provide information * describing its tables, its supported SQL grammar, its stored * procedures, the capabilities of this connection, etc. This * information is made available through a DatabaseMetaData * object. * * @return a DatabaseMetaData object for this Connection * @exception SQLException if a database-access error occurs. */ DatabaseMetaData getMetaData() throws SQLException; /** * You can put a connection in read-only mode as a hint to enable * database optimizations. * * <P><B>Note:</B> setReadOnly cannot be called while in the * middle of a transaction. * * @param readOnly true enables read-only mode; false disables * read-only mode. * @exception SQLException if a database-access error occurs. */ void setReadOnly(boolean readOnly) throws SQLException; /** * Tests to see if the connection is in read-only mode. * * @return true if connection is read-only * @exception SQLException if a database-access error occurs. */ boolean isReadOnly() throws SQLException; /** * A sub-space of this Connection's database may be selected by setting a * catalog name. If the driver does not support catalogs it will * silently ignore this request. * * @exception SQLException if a database-access error occurs. */ void setCatalog(String catalog) throws SQLException; /** * Return the Connection's current catalog name. * * @return the current catalog name or null * @exception SQLException if a database-access error occurs. */ String getCatalog() throws SQLException; /** * Transactions are not supported. */ int TRANSACTION_NONE = 0; /** * Dirty reads, non-repeatable reads and phantom reads can occur. * This level allows a row changed by one transaction to be read * by another transaction before any changes in that row have been * committed (a "dirty read"). If any of the changes are rolled back, * the second transaction will have retrieved an invalid row. */ int TRANSACTION_READ_UNCOMMITTED = 1; /** * Dirty reads are prevented; non-repeatable reads and phantom * reads can occur. This level only prohibits a transaction * from reading a row with uncommitted changes in it. */ int TRANSACTION_READ_COMMITTED = 2; /** * Dirty reads and non-repeatable reads are prevented; phantom * reads can occur. This level prohibits a transaction from * reading a row with uncommitted changes in it, and it also * prohibits the situation where one transaction reads a row, * a second transaction alters the row, and the first transaction * rereads the row, getting different values the second time * (a "non-repeatable read"). */ int TRANSACTION_REPEATABLE_READ = 4; /** * Dirty reads, non-repeatable reads and phantom reads are prevented. * This level includes the prohibitions in * TRANSACTION_REPEATABLE_READ and further prohibits the * situation where one transaction reads all rows that satisfy * a WHERE condition, a second transaction inserts a row that * satisfies that WHERE condition, and the first transaction * rereads for the same condition, retrieving the additional * "phantom" row in the second read. */ int TRANSACTION_SERIALIZABLE = 8; /** * You can call this method to try to change the transaction * isolation level using one of the TRANSACTION_* values. * * <P><B>Note:</B> setTransactionIsolation cannot be called while * in the middle of a transaction. * * @param level one of the TRANSACTION_* isolation values with the * exception of TRANSACTION_NONE; some databases may not support * other values * @exception SQLException if a database-access error occurs. * @see DatabaseMetaData#supportsTransactionIsolationLevel */ void setTransactionIsolation(int level) throws SQLException; /** * Get this Connection's current transaction isolation mode. * * @return the current TRANSACTION_* mode value * @exception SQLException if a database-access error occurs. */ int getTransactionIsolation() throws SQLException; /** * The first warning reported by calls on this Connection is * returned. * * <P><B>Note:</B> Subsequent warnings will be chained to this * SQLWarning. * * @return the first SQLWarning or null * @exception SQLException if a database-access error occurs. */ SQLWarning getWarnings() throws SQLException; /** * After this call, getWarnings returns null until a new warning is * reported for this Connection. * * @exception SQLException if a database-access error occurs. */ void clearWarnings() throws SQLException; //--------------------------JDBC 2.0----------------------------- /** * JDBC 2.0 * * Same as createStatement() above, but allows the default result set * type and result set concurrency type to be overridden. * * @param resultSetType a result set type, see ResultSet.TYPE_XXX * @param resultSetConcurrency a concurrency type, see ResultSet.CONCUR_XXX * @return a new Statement object * @exception SQLException if a database-access error occurs. */ Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException; /** * JDBC 2.0 * * Same as prepareStatement() above, but allows the default result set * type and result set concurrency type to be overridden. * * @param resultSetType a result set type, see ResultSet.TYPE_XXX * @param resultSetConcurrency a concurrency type, see ResultSet.CONCUR_XXX * @return a new PreparedStatement object containing the * pre-compiled SQL statement * @exception SQLException if a database-access error occurs. */ PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException; /** * JDBC 2.0 * * Same as prepareCall() above, but allows the default result set * type and result set concurrency type to be overridden. * * @param resultSetType a result set type, see ResultSet.TYPE_XXX * @param resultSetConcurrency a concurrency type, see ResultSet.CONCUR_XXX * @return a new CallableStatement object containing the * pre-compiled SQL statement * @exception SQLException if a database-access error occurs. */ CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException; /** * JDBC 2.0 *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -