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;
 | |
| }
 |