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