1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage java.sql; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Map; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/** 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * A connection represents a link from a Java application to a database. All SQL 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statements and results are returned within the context of a connection. 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Database statements that are executed within this context form a 267ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * database session which forms one or more closed transactions. Especially in 277ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * distributed applications, multiple concurrent connections may exist accessing 287ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * the same values of the database. which may lead to the following phenomena 297ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * (referred to as <i>transaction isolation levels</i>): 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>dirty reads</i>:<br> 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * reading values from table rows that are not committed.</br></li> 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>non-repeatable reads</i>:<br> 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * reading table rows more than once in a transaction but getting back different 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * data because other transactions have altered the rows between the reads.</br></li> 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>phantom reads</i>:<br> 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * retrieving additional "phantom" rows in the course of repeated table reads 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * because other transactions have inserted additional rows that satisfy an 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * SQL {@code WHERE} clause</br></li> 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic interface Connection { 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * A constant indicating that transactions are not supported. 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int TRANSACTION_NONE = 0; 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * No <i>dirty reads</i> are permitted, therefore transactions may not read 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * a row containing uncommitted values - but does not prevent an application 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * from <i>non-repeatable reads</i> and <i>phantom reads</i>. 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int TRANSACTION_READ_COMMITTED = 2; 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * In the case that reading uncommitted values is allowed, the following 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * incidents may happen which may lead to an invalid results: 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>dirty reads</i></li> 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>non-repeatable reads</i></li> 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>phantom reads</i></li> 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int TRANSACTION_READ_UNCOMMITTED = 1; 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * A constant indicating that <i>dirty reads</i> and <i>non-repeatable 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * reads</i> are <b>prevented</b> but <i>phantom reads</i> can occur. 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int TRANSACTION_REPEATABLE_READ = 4; 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The constant that indicates that the following incidents are <b>all 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * prevented</b> (the opposite of {@link #TRANSACTION_READ_UNCOMMITTED}): 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>dirty reads</i></li> 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>non-repeatable reads</i></li> 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li><i>phantom reads</i></li> 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int TRANSACTION_SERIALIZABLE = 8; 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Discards all warnings that may have arisen for this connection. 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Subsequent calls to {@link #getWarnings()} will return {@code null} 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * up until a new warning condition occurs. 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void clearWarnings() throws SQLException; 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Causes the instant release of all database and driver connection 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resources associated with this object. Any subsequent invocations of this 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method have no effect. 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * It is strongly recommended that all connections are closed before they 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * are dereferenced by the application ready for garbage collection. 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Although the {@code finalize} method of the connection closes the 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * connection before garbage collection takes place, it is not advisable to 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * leave the {@code close} operation to take place in this way. Mainly 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * because undesired side-effects may appear. 1057ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void close() throws SQLException; 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Commits all of the changes made since the last {@code commit} or 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code rollback} of the associated transaction. All locks in the database 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * held by this connection are also relinquished. Calling this operation on 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * connection objects in {@code auto-commit} mode leads to an error. 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database or if the target 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * connection instance is in auto-commit mode. 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void commit() throws SQLException; 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a new instance of {@code Statement} for issuing SQL commands to 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the remote database. 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code ResultSets} generated by the returned statement will default to 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * type {@code ResultSet.TYPE_FORWARD_ONLY} and concurrency level {@code 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ResultSet.CONCUR_READ_ONLY}. 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a {@code Statement} object with default settings. 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see ResultSet 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public Statement createStatement() throws SQLException; 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a new instance of {@code Statement} whose associated {@code 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ResultSet}s have the characteristics specified in the type and 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * concurrency arguments. 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetType 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following type specifiers: 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_SENSITIVE} </li> <li> 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#TYPE_SCROLL_INSENSITIVE} </li> <li> 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#TYPE_FORWARD_ONLY}</li> 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetConcurrency 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following concurrency mode specifiers: 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_UPDATABLE}</li> <li> 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#CONCUR_READ_ONLY}</li> 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a new instance of {@code Statement} capable of manufacturing 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code ResultSet}s that satisfy the specified {@code 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetType} and {@code resultSetConcurrency} values. 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public Statement createStatement(int resultSetType, int resultSetConcurrency) 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SQLException; 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a new instance of {@code Statement} whose associated 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code ResultSet}s will have the characteristics specified in the 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * type, concurrency and holdability arguments. 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetType 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following type specifiers: 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_SENSITIVE}</li> 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_INSENSITIVE}</li> 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_FORWARD_ONLY}</li> 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetConcurrency 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following concurrency mode specifiers: 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_UPDATABLE}</li> 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_READ_ONLY}</li> 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetHoldability 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following holdability mode specifiers: 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#HOLD_CURSORS_OVER_COMMIT}</li> 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CLOSE_CURSORS_AT_COMMIT}</li> 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a new instance of {@code Statement} capable of 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * manufacturing {@code ResultSet}s that satisfy the 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * specified {@code resultSetType}, 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code resultSetConcurrency} and 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code resultSetHoldability} values. 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public Statement createStatement(int resultSetType, 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int resultSetConcurrency, int resultSetHoldability) 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SQLException; 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a {@code boolean} indicating whether or not this connection is in 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the {@code auto-commit} operating mode. 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return {@code true} if {@code auto-commit} is on, otherwise {@code 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * false}. 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public boolean getAutoCommit() throws SQLException; 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Gets this {@code Connection} object's current catalog name. 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return the catalog name. {@code null} if there is no catalog 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * name. 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public String getCatalog() throws SQLException; 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns the holdability property that any {@code ResultSet} produced by 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this instance will have. 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return one of the following holdability mode specifiers: 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#HOLD_CURSORS_OVER_COMMIT}</li> <li> 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#CLOSE_CURSORS_AT_COMMIT}</li> 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the a database. 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int getHoldability() throws SQLException; 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Gets the metadata about the database referenced by this connection. The 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * returned {@code DatabaseMetaData} describes the database topography, 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * available stored procedures, SQL syntax and so on. 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a {@code DatabaseMetaData} object containing the database 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * description. 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the a database. 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public DatabaseMetaData getMetaData() throws SQLException; 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns the transaction isolation level for this connection. 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return the transaction isolation value. 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #TRANSACTION_NONE 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #TRANSACTION_READ_COMMITTED 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #TRANSACTION_READ_UNCOMMITTED 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #TRANSACTION_REPEATABLE_READ 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see #TRANSACTION_SERIALIZABLE 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int getTransactionIsolation() throws SQLException; 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns the type mapping associated with this {@code Connection} object. 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The type mapping must be set on the application level. 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return the Type Map as a {@code java.util.Map}. 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public Map<String, Class<?>> getTypeMap() throws SQLException; 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Gets the first instance of any {@code SQLWarning} objects that may have 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * been created in the use of this connection. If at least one warning has 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * occurred then this operation returns the first one reported. A {@code 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * null} indicates that no warnings have occurred. 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * By invoking the {@link SQLWarning#getNextWarning()} method of the 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * returned {@code SQLWarning} object it is possible to obtain all of 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this connection's warning objects. 2817ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return the first warning as an SQLWarning object (may be {@code null}). 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database or if the call 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has been made on a connection which has been previously 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * closed. 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public SQLWarning getWarnings() throws SQLException; 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a {@code boolean} indicating whether or not this connection is in 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the {@code closed} state. The {@code closed} state may be entered into as 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * a consequence of a successful invocation of the {@link #close()} method 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * or else if an error has occurred that prevents the connection from 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * functioning normally. 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return {@code true} if closed, otherwise {@code false}. 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public boolean isClosed() throws SQLException; 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a {@code boolean} indicating whether or not this connection is 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * currently in the {@code read-only} state. 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return {@code true} if in read-only state, otherwise {@code false}. 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public boolean isReadOnly() throws SQLException; 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a string representation of the input SQL statement 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code sql} expressed in the underlying system's native SQL 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * syntax. 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the JDBC form of an SQL statement. 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return the SQL statement in native database format. 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public String nativeSQL(String sql) throws SQLException; 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a new instance of {@code CallableStatement} that may be used for 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * making stored procedure calls to the database. 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement that calls the stored function 332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a new instance of {@code CallableStatement} representing the SQL 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statement. {@code ResultSet}s emitted from this {@code 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * CallableStatement} will default to type 335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#TYPE_FORWARD_ONLY} and concurrency 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#CONCUR_READ_ONLY}. 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a problem occurs accessing the database. 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public CallableStatement prepareCall(String sql) throws SQLException; 341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a new instance of {@code CallableStatement} that may be used for 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * making stored procedure calls to the database. {@code ResultSet}s emitted 345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * from this {@code CallableStatement} will satisfy the specified {@code 346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetType} and {@code resultSetConcurrency} values. 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement 350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetType 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following type specifiers: 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_SENSITIVE}</li> 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_INSENSITIVE}</li> 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_FORWARD_ONLY}</li> 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetConcurrency 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following concurrency mode specifiers: 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_READ_ONLY}</li> 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_UPDATABLE}</li> 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a new instance of {@code CallableStatement} representing the 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * precompiled SQL statement. {@code ResultSet}s emitted from this 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code CallableStatement} will satisfy the specified {@code 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetType} and {@code resultSetConcurrency} values. 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a problem occurs accessing the database 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public CallableStatement prepareCall(String sql, int resultSetType, 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int resultSetConcurrency) throws SQLException; 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a new instance of {@code CallableStatement} that may be used for 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * making stored procedure calls to the database. {@code ResultSet}s created 376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * from this {@code CallableStatement} will have characteristics determined 377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * by the specified type, concurrency and holdability arguments. 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement 381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetType 382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following type specifiers: 383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_SENSITIVE}</li> 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_INSENSITIVE}</li> 386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_FORWARD_ONLY}</li> 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetConcurrency 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following concurrency mode specifiers: 390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_READ_ONLY}</li> 392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_UPDATABLE}</li> 393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetHoldability 395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following holdability mode specifiers: 396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#HOLD_CURSORS_OVER_COMMIT}</li> 398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CLOSE_CURSORS_AT_COMMIT}</li> 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a new instance of {@code CallableStatement} representing the 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * precompiled SQL statement. {@code ResultSet}s emitted from this 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code CallableStatement} will satisfy the specified {@code 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetType}, {@code resultSetConcurrency} and {@code 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetHoldability} values. 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a problem occurs accessing the database. 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public CallableStatement prepareCall(String sql, int resultSetType, 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int resultSetConcurrency, int resultSetHoldability) 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SQLException; 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Returns a new instance of {@code PreparedStatement} that may be used any 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * number of times to execute parameterized requests on the database server. 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Subject to JDBC driver support, this operation will attempt to send the 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * precompiled version of the statement to the database. If 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the driver does not support precompiled statements, the statement will 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * not reach the database server until it is executed. This distinction 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * determines the moment when {@code SQLException}s get raised. 4217ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * <p> 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * By default, {@code ResultSet}s from the returned object will be 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#TYPE_FORWARD_ONLY} type with a 424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#CONCUR_READ_ONLY} mode of concurrency. 425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement. 428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return the {@code PreparedStatement} containing the supplied SQL 429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statement. 430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PreparedStatement prepareStatement(String sql) throws SQLException; 434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Creates a default {@code PreparedStatement} that can retrieve 437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * automatically generated keys. Parameter {@code autoGeneratedKeys} may be 438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * used to tell the driver whether such keys should be made accessible. 439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * This is only relevant when the {@code sql} statement is an {@code insert} 440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statement. 441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * An SQL statement which may have {@code IN} parameters can be stored and 443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * precompiled in a {@code PreparedStatement}. The {@code PreparedStatement} 444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * can then be then be used to execute the statement multiple times in an 445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * efficient way. 4467ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * <p> 447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Subject to JDBC driver support, this operation will attempt to send the 448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * precompiled version of the statement to the database. If 449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the driver does not support precompiled statements, the statement will 450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * not reach the database server until it is executed. This distinction 451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * determines the moment when {@code SQLException}s get raised. 452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * By default, {@code ResultSet}s from the returned object will be 454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#TYPE_FORWARD_ONLY} type with a 455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#CONCUR_READ_ONLY} mode of concurrency. 4567ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * 457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement. 459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param autoGeneratedKeys 460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following generated key options: 461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link Statement#RETURN_GENERATED_KEYS}</li> 463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link Statement#NO_GENERATED_KEYS}</li> 464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a new {@code PreparedStatement} instance representing the input 466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * SQL statement. 467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) 471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SQLException; 472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Creates a default {@code PreparedStatement} that can retrieve the 475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * auto-generated keys designated by a supplied array. If {@code sql} is an 476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * SQL {@code INSERT} statement, the parameter {@code columnIndexes} is expected 477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * to hold the index values for each column in the statement's intended 478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * database table containing the autogenerated-keys of interest. Otherwise 479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code columnIndexes} is ignored. 480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Subject to JDBC driver support, this operation will attempt to send the 482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * precompiled version of the statement to the database. If 483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the driver does not support precompiled statements, the statement will 484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * not reach the database server until it is executed. This distinction 485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * determines the moment when {@code SQLException}s get raised. 486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * By default, {@code ResultSet}s from the returned object will be 488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#TYPE_FORWARD_ONLY} type with a 489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#CONCUR_READ_ONLY} concurrency mode. 4907ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * 491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement. 493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param columnIndexes 494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the indexes of the columns for which auto-generated keys 495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * should be made available. 496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return the PreparedStatement containing the supplied SQL statement. 497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a problem occurs accessing the database. 499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PreparedStatement prepareStatement(String sql, int[] columnIndexes) 501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SQLException; 502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Creates a {@code PreparedStatement} that generates {@code ResultSet}s 505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * with the specified values of {@code resultSetType} and {@code 506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetConcurrency}. 507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement. It can contain one or more {@code '?'} 510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code IN} parameter placeholders. 511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetType 512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following type specifiers: 513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_SENSITIVE}</li> 515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_INSENSITIVE}</li> 516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_FORWARD_ONLY}</li> 517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetConcurrency 519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following concurrency mode specifiers: 520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_READ_ONLY}</li> 522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_UPDATABLE}</li> 523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a new instance of {@code PreparedStatement} containing the SQL 525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statement {@code sql}. {@code ResultSet}s emitted from this 526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code PreparedStatement} will satisfy the specified {@code 527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetType} and {@code resultSetConcurrency} values. 528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a problem occurs accessing the database. 530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PreparedStatement prepareStatement(String sql, int resultSetType, 532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int resultSetConcurrency) throws SQLException; 533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Creates a {@code PreparedStatement} that generates {@code ResultSet}s 536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * with the specified type, concurrency and holdability 537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement. It can contain one or more {@code '?' IN} 540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * parameter placeholders. 541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetType 542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following type specifiers: 543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_SENSITIVE}</li> 545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_SCROLL_INSENSITIVE}</li> 546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#TYPE_FORWARD_ONLY}</li> 547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetConcurrency 549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following concurrency mode specifiers: 550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_READ_ONLY}</li> 552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CONCUR_UPDATABLE}</li> 553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param resultSetHoldability 555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following holdability mode specifiers: 556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#HOLD_CURSORS_OVER_COMMIT}</li> 558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CLOSE_CURSORS_AT_COMMIT}</li> 559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a new instance of {@code PreparedStatement} containing the SQL 561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statement {@code sql}. {@code ResultSet}s emitted from this 562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code PreparedStatement} will satisfy the specified {@code 563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetType}, {@code resultSetConcurrency} and {@code 564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * resultSetHoldability} values. 565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a problem occurs accessing the database. 567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PreparedStatement prepareStatement(String sql, int resultSetType, 569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int resultSetConcurrency, int resultSetHoldability) 570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SQLException; 571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Creates a default {@code PreparedStatement} that can retrieve the 574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * auto-generated keys designated by a supplied array. If {@code sql} is an 575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * SQL {@code INSERT} statement, {@code columnNames} is expected to hold the 576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * names of each column in the statement's associated database table 577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * containing the autogenerated-keys of interest. Otherwise {@code 578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * columnNames} is ignored. 579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Subject to JDBC driver support, this operation will attempt to send the 581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * precompiled version of the statement to the database. Alternatively, if 582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the driver is not capable of handling precompiled statements, the 583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statement will not reach the database server until it is executed. This 584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * will have a bearing on precisely <i>when</i> {@code SQLException} 585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * instances get raised. 586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * By default, ResultSets from the returned object will be 588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#TYPE_FORWARD_ONLY} type with a 589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link ResultSet#CONCUR_READ_ONLY} concurrency mode. 5907ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * 591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param sql 592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the SQL statement. 593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param columnNames 594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the names of the columns for which auto-generated keys should 595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * be made available. 596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return the PreparedStatement containing the supplied SQL statement. 597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if a problem occurs accessing the database. 599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public PreparedStatement prepareStatement(String sql, String[] columnNames) 601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SQLException; 602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Releases the specified {@code savepoint} from the present transaction. Once removed, 605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the {@code Savepoint} is considered invalid and should not be referenced 606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * further. 607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param savepoint 609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the object targeted for removal. 610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem with accessing the database or if 612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code savepoint} is considered not valid in this 613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * transaction. 614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void releaseSavepoint(Savepoint savepoint) throws SQLException; 616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Rolls back all updates made so far in this transaction and 619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * relinquishes all acquired database locks. It is an error to invoke this 620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * operation when in auto-commit mode. 621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem with the database or if the method is 624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * called while in auto-commit mode of operation. 625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void rollback() throws SQLException; 627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Undoes all changes made after the supplied {@code Savepoint} object was 630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * set. This method should only be used when auto-commit mode is disabled. 631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param savepoint 633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the Savepoint to roll back to 634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void rollback(Savepoint savepoint) throws SQLException; 638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets this connection's auto-commit mode {@code on} or {@code off}. 641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Putting a Connection into auto-commit mode means that all associated SQL 643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statements are run and committed as separate transactions. 644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * By contrast, setting auto-commit to {@code off} means that associated SQL 645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statements get grouped into transactions that need to be completed by 646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * explicit calls to either the {@link #commit()} or {@link #rollback()} 647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * methods. 6487ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * <p> 649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Auto-commit is the default mode for new connection instances. 650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * When in this mode, commits will automatically occur upon successful SQL 652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * statement completion or upon successful completion of an execute. 653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Statements are not considered successfully completed until all associated 654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code ResultSet}s and output parameters have been obtained or closed. 655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Calling this operation during an uncommitted transaction will result in 657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * it being committed. 6587ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * 659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param autoCommit 660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code boolean} indication of whether to put the target 661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * connection into auto-commit mode ({@code true}) or not ( 662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code false}). 663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setAutoCommit(boolean autoCommit) throws SQLException; 667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets the catalog name for this connection. This is used to select a 670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * subspace of the database for future work. If the driver does not support 671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * catalog names, this method is ignored. 672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param catalog 674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the catalog name to use. 675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setCatalog(String catalog) throws SQLException; 679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets the holdability of the {@code ResultSet}s created by this Connection. 682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param holdability 684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one of the following holdability mode specifiers: 685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#CLOSE_CURSORS_AT_COMMIT}</li> 687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link ResultSet#HOLD_CURSORS_OVER_COMMIT}</li> 688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li> 689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database 692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setHoldability(int holdability) throws SQLException; 694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets this connection to read-only mode. 697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * This serves as a hint to the driver, which can enable database 699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * optimizations. 7007ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * 701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param readOnly 702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code true} to set the Connection to read only mode. {@code 703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * false} disables read-only mode. 704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setReadOnly(boolean readOnly) throws SQLException; 708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Creates an unnamed {@code Savepoint} in the current transaction. 711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a {@code Savepoint} object for this savepoint. 713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public Savepoint setSavepoint() throws SQLException; 717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Creates a named {@code Savepoint} in the current transaction. 720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param name 722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the name to use for the new {@code Savepoint}. 723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return a {@code Savepoint} object for this savepoint. 724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database. 726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public Savepoint setSavepoint(String name) throws SQLException; 728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets the transaction isolation level for this Connection. 731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> 732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * If this method is called during a transaction, the results are 733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * implementation defined. 7347ae5f6927b1b186bb54b94e7907cb245f0979fdeJesse Wilson * 735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param level 736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the new transaction isolation level to use from the following 737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * list of possible values: 738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <ul> 739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link #TRANSACTION_READ_COMMITTED} 740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link #TRANSACTION_READ_UNCOMMITTED} 741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link #TRANSACTION_REPEATABLE_READ} 742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <li>{@link #TRANSACTION_SERIALIZABLE} 743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </ul> 744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem with the database or if the value of 746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@code level} is not one of the expected constant values. 747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setTransactionIsolation(int level) throws SQLException; 749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets the {@code TypeMap} for this connection. The input {@code map} 752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * should contain mappings between complex Java and SQL types. 753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param map 755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the new type map. 756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws SQLException 757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * if there is a problem accessing the database or if {@code 758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * map} is not an instance of {@link Map}. 759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setTypeMap(Map<String, Class<?>> map) throws SQLException; 761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 762