mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			421 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			421 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Java
		
	
	
	
/* Connection.java -- Manage a database connection.
 | 
						|
   Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
 | 
						|
 | 
						|
This file is part of GNU Classpath.
 | 
						|
 | 
						|
GNU Classpath is free software; you can redistribute it and/or modify
 | 
						|
it under the terms of the GNU General Public License as published by
 | 
						|
the Free Software Foundation; either version 2, or (at your option)
 | 
						|
any later version.
 | 
						|
 
 | 
						|
GNU Classpath is distributed in the hope that it will be useful, but
 | 
						|
WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
General Public License for more details.
 | 
						|
 | 
						|
You should have received a copy of the GNU General Public License
 | 
						|
along with GNU Classpath; see the file COPYING.  If not, write to the
 | 
						|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 | 
						|
02111-1307 USA.
 | 
						|
 | 
						|
Linking this library statically or dynamically with other modules is
 | 
						|
making a combined work based on this library.  Thus, the terms and
 | 
						|
conditions of the GNU General Public License cover the whole
 | 
						|
combination.
 | 
						|
 | 
						|
As a special exception, the copyright holders of this library give you
 | 
						|
permission to link this library with independent modules to produce an
 | 
						|
executable, regardless of the license terms of these independent
 | 
						|
modules, and to copy and distribute the resulting executable under
 | 
						|
terms of your choice, provided that you also meet, for each linked
 | 
						|
independent module, the terms and conditions of the license of that
 | 
						|
module.  An independent module is a module which is not derived from
 | 
						|
or based on this library.  If you modify this library, you may extend
 | 
						|
this exception to your version of the library, but you are not
 | 
						|
obligated to do so.  If you do not wish to do so, delete this
 | 
						|
exception statement from your version. */
 | 
						|
 | 
						|
 | 
						|
package java.sql;
 | 
						|
 | 
						|
import java.util.Map;
 | 
						|
 | 
						|
/**
 | 
						|
 * This interface provides methods for managing a connection to a database.
 | 
						|
 *
 | 
						|
 * @author Aaron M. Renn (arenn@urbanophile.com)
 | 
						|
 */
 | 
						|
public interface Connection 
 | 
						|
{
 | 
						|
  /**
 | 
						|
   * This transaction isolation level indicates that transactions are not
 | 
						|
   * supported.
 | 
						|
   */
 | 
						|
  public static final int TRANSACTION_NONE = 0;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This transaction isolation level indicates that one transaction can
 | 
						|
   * read modifications by other transactions before the other transactions
 | 
						|
   * have committed their changes.  This could result in invalid reads.
 | 
						|
   */
 | 
						|
  public static final int TRANSACTION_READ_UNCOMMITTED = 1;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This transaction isolation leve indicates that only committed data from
 | 
						|
   * other transactions will be read.  If a transaction reads a row, then
 | 
						|
   * another transaction commits a change to that row, the first transaction
 | 
						|
   * would retrieve the changed row on subsequent reads of the same row.
 | 
						|
   */
 | 
						|
  public static final int TRANSACTION_READ_COMMITTED = 2;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This transaction isolation level indicates that only committed data from
 | 
						|
   * other transactions will be read.  It also ensures that data read from
 | 
						|
   * a row will not be different on a subsequent read even if another
 | 
						|
   * transaction commits a change.
 | 
						|
   */
 | 
						|
  public static final int TRANSACTION_REPEATABLE_READ = 4;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This transaction isolation level indicates that only committed data from
 | 
						|
   * other transactions will be read.  It also ensures that data read from
 | 
						|
   * a row will not be different on a subsequent read even if another
 | 
						|
   * transaction commits a change.  Additionally, rows modified by other
 | 
						|
   * transactions will not affect the result set returned during subsequent
 | 
						|
   * executions of the same WHERE clause in this transaction.
 | 
						|
   */
 | 
						|
  public static final int TRANSACTION_SERIALIZABLE = 8;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method creates a new SQL statement.  The default result set type
 | 
						|
   * and concurrency will be used.
 | 
						|
   *
 | 
						|
   * @return A new <code>Statement</code> object. 
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   * @see Statement
 | 
						|
   */
 | 
						|
  public Statement createStatement() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method creates a new <code>PreparedStatement</code> for the specified
 | 
						|
   * SQL string.  This method is designed for use with parameterized
 | 
						|
   * statements.  The default result set type and concurrency will be used.
 | 
						|
   *
 | 
						|
   * @param The SQL statement to use in creating this 
 | 
						|
   *        <code>PreparedStatement</code>.
 | 
						|
   * @return A new <code>PreparedStatement</code>.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   * @see PreparedStatement
 | 
						|
   */
 | 
						|
  public PreparedStatement prepareStatement(String sql) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method creates a new <code>CallableStatement</code> for the 
 | 
						|
   * specified SQL string.  Thie method is designed to be used with
 | 
						|
   * stored procedures.  The default result set type and concurrency
 | 
						|
   * will be used.
 | 
						|
   *
 | 
						|
   * @param The SQL statement to use in creating this 
 | 
						|
   *        <code>CallableStatement</code>.
 | 
						|
   * @return A new <code>CallableStatement</code>.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   * @see CallableStatement
 | 
						|
   */
 | 
						|
  public CallableStatement prepareCall(String sql) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method converts the specified generic SQL statement into the
 | 
						|
   * native grammer of the database this object is connected to.
 | 
						|
   *
 | 
						|
   * @param The JDBC generic SQL statement.
 | 
						|
   * @return The native SQL statement.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public String nativeSQL(String sql) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method turns auto commit mode on or off.  In auto commit mode,
 | 
						|
   * every SQL statement is committed its own transaction.  Otherwise a
 | 
						|
   * transaction must be explicitly committed or rolled back.
 | 
						|
   *
 | 
						|
   * @param autoCommit <code>true</code> to enable auto commit mode,
 | 
						|
   *        <code>false</code> to disable it.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   * @see commit
 | 
						|
   * @see rollback
 | 
						|
   */
 | 
						|
  public void setAutoCommit(boolean autoCommit) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method tests whether or not auto commit mode is currently enabled.
 | 
						|
   * In auto commit mode,  every SQL statement is committed its own transaction.
 | 
						|
   * Otherwise a transaction must be explicitly committed or rolled back.
 | 
						|
   *
 | 
						|
   * @return <code>true</code> if auto commit mode is enabled, 
 | 
						|
   * <code>false</code> otherwise.
 | 
						|
   *
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   *
 | 
						|
   * @see commit
 | 
						|
   * @see rollback
 | 
						|
   */
 | 
						|
  public boolean getAutoCommit() throws SQLException;
 | 
						|
 | 
						|
 /**
 | 
						|
  * This method commits any SQL statements executed on this connection since 
 | 
						|
  * the last commit or rollback.
 | 
						|
  *
 | 
						|
  * @exception SQLException If an error occurs.
 | 
						|
  */
 | 
						|
  public void commit() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method rolls back any SQL statements executed on this connection
 | 
						|
   * since the last commit or rollback.
 | 
						|
   *
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public void rollback() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method immediately closes this database connection.
 | 
						|
   *
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public void close() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method tests whether or not this connection has been closed. 
 | 
						|
   *
 | 
						|
   * @return <code>true</code> if the connection is closed, <code>false</code>
 | 
						|
   *         otherwise.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public boolean isClosed() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method returns the meta data for this database connection.
 | 
						|
   *
 | 
						|
   * @return The meta data for this database.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   * @see DatabaseMetaData
 | 
						|
   */
 | 
						|
  public DatabaseMetaData getMetaData() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method turns read only mode on or off.  It may not be called while
 | 
						|
   * a transaction is in progress.
 | 
						|
   *
 | 
						|
   * @param readOnly <code>true</code> if this connection is read only,
 | 
						|
   *        <code>false</code> otherwise.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public void setReadOnly(boolean readOnly) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method tests whether or not this connection is in read only mode.
 | 
						|
   *
 | 
						|
   * @return <code>true</code> if the connection is read only <code>false</code>
 | 
						|
   *         otherwise.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public boolean isReadOnly() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method sets the name of the catalog in use by this connection.
 | 
						|
   * Note that this method does nothing if catalogs are not supported by
 | 
						|
   * this database.
 | 
						|
   *
 | 
						|
   * @param catalog The name of the catalog to use for this connection.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public void setCatalog(String catalog) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method returns the name of the catalog in use by this connection,
 | 
						|
   * if any.
 | 
						|
   *
 | 
						|
   * @return The name of the catalog, or <code>null</code> if one does not
 | 
						|
   *         exist or catalogs are not supported by this database.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public String getCatalog() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method sets the current transaction isolation mode.  This must
 | 
						|
   * be one of the constants defined in this interface.
 | 
						|
   *
 | 
						|
   * @param level The transaction isolation level.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public void setTransactionIsolation(int level) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method returns the current transaction isolation mode.  This will
 | 
						|
   * be one of the constants defined in this interface.
 | 
						|
   *
 | 
						|
   * @return The transaction isolation level.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public int getTransactionIsolation() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method returns the first warning that occurred on this connection,
 | 
						|
   * if any.  If there were any subsequence warnings, they will be chained
 | 
						|
   * to the first one.
 | 
						|
   *
 | 
						|
   * @return The first <code>SQLWarning</code> that occurred, or 
 | 
						|
   *         <code>null</code> if there have been no warnings.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public SQLWarning getWarnings() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method clears all warnings that have occurred on this connection.
 | 
						|
   *
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public void clearWarnings() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method creates a new SQL statement with the specified type and
 | 
						|
   * concurrency.  Valid values for these parameters are specified in the
 | 
						|
   * <code>ResultSet</code> class.
 | 
						|
   *
 | 
						|
   * @param resultSetType The type of result set to use for this statement.
 | 
						|
   * @param resultSetConcurrency.  The type of concurrency to be used in
 | 
						|
   *        the result set for this statement.
 | 
						|
   * @return A new <code>Statement</code> object.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   * @see Statement
 | 
						|
   * @see ResultSet
 | 
						|
   */
 | 
						|
  public Statement createStatement(int resultSetType, int resultSetConcurrency)
 | 
						|
    throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method creates a new <code>PreparedStatement</code> for the specified
 | 
						|
   * SQL string.  This method is designed for use with parameterized
 | 
						|
   * statements.  The specified result set type and concurrency will be used.
 | 
						|
   * Valid values for these parameters are specified in the
 | 
						|
   * <code>ResultSet</code> class.
 | 
						|
   *
 | 
						|
   * @param The SQL statement to use in creating this 
 | 
						|
   *        <code>PreparedStatement</code>.
 | 
						|
   * @param resultSetType The type of result set to use for this statement.
 | 
						|
   * @param resultSetConcurrency.  The type of concurrency to be used in
 | 
						|
   *        the result set for this statement.
 | 
						|
   * @return A new <code>PreparedStatement</code>.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   * @see PreparedStatement
 | 
						|
   * @see ResultSet
 | 
						|
   */
 | 
						|
  public PreparedStatement prepareStatement(String sql, int resultSetType, 
 | 
						|
    int resultSetConcurrency) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method creates a new <code>CallableStatement</code> for the 
 | 
						|
   * specified SQL string.  Thie method is designed to be used with
 | 
						|
   * stored procedures.  The specified result set type and concurrency
 | 
						|
   * will be used.  Valid values for these parameters are specified in the
 | 
						|
   * <code>ResultSet</code> class.
 | 
						|
   *
 | 
						|
   * @param The SQL statement to use in creating this 
 | 
						|
   *        <code>PreparedStatement</code>.
 | 
						|
   * @param resultSetType The type of result set to use for this statement.
 | 
						|
   * @param resultSetConcurrency.  The type of concurrency to be used in
 | 
						|
   *        the result set for this statement.
 | 
						|
   * @return A new <code>CallableStatement</code>.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   * @see CallableStatement
 | 
						|
   * @see ResultSet
 | 
						|
   */
 | 
						|
  public CallableStatement prepareCall(String sql, int resultSetType, int
 | 
						|
    resultSetConcurrency) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method returns the mapping of SQL types to Java classes
 | 
						|
   * currently in use by this connection.  This mapping will have no
 | 
						|
   * entries unless they have been manually added.
 | 
						|
   *
 | 
						|
   * @return The SQL type to Java class mapping.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public Map getTypeMap() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * This method sets the mapping table for SQL types to Java classes.
 | 
						|
   * Any entries in this map override the defaults.
 | 
						|
   *
 | 
						|
   * @param map The new SQL mapping table.
 | 
						|
   * @exception SQLException If an error occurs.
 | 
						|
   */
 | 
						|
  public void setTypeMap(Map map) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public void setHoldability(int holdability) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public int getHoldability() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public Savepoint setSavepoint() throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public Savepoint setSavepoint(String name) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public void rollback(Savepoint savepoint) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public void releaseSavepoint(Savepoint savepoint) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public Statement createStatement(int resultSetType, int
 | 
						|
      resultSetConcurrency, int resultSetHoldability) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public PreparedStatement prepareStatement(String sql, int resultSetType, int
 | 
						|
      resultSetConcurrency, int resultSetHoldability) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public CallableStatement prepareCall(String sql, int resultSetType, int
 | 
						|
      resultSetConcurrency, int resultSetHoldability) throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
 | 
						|
      throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public PreparedStatement prepareStatement(String sql, int[] columnIndexes)
 | 
						|
      throws SQLException;
 | 
						|
 | 
						|
  /**
 | 
						|
   * @since 1.4
 | 
						|
   */
 | 
						|
  public PreparedStatement prepareStatement(String sql, String[] columnNames)
 | 
						|
      throws SQLException;
 | 
						|
}
 |