001: /*
002:
003: Derby - Class org.apache.derby.iapi.jdbc.BrokeredConnection30
004:
005: Licensed to the Apache Software Foundation (ASF) under one or more
006: contributor license agreements. See the NOTICE file distributed with
007: this work for additional information regarding copyright ownership.
008: The ASF licenses this file to you under the Apache License, Version 2.0
009: (the "License"); you may not use this file except in compliance with
010: the License. You may obtain a copy of the License at
011:
012: http://www.apache.org/licenses/LICENSE-2.0
013:
014: Unless required by applicable law or agreed to in writing, software
015: distributed under the License is distributed on an "AS IS" BASIS,
016: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: See the License for the specific language governing permissions and
018: limitations under the License.
019:
020: */
021:
022: package org.apache.derby.iapi.jdbc;
023:
024: import java.sql.Statement;
025: import java.sql.PreparedStatement;
026: import java.sql.CallableStatement;
027: import java.sql.SQLException;
028: import java.sql.Savepoint;
029: import org.apache.derby.iapi.reference.JDBC30Translation;
030:
031: /**
032: Extends BrokeredConnection to provide the JDBC 3.0 connection methods.
033: */
034: public class BrokeredConnection30 extends BrokeredConnection {
035:
036: public BrokeredConnection30(BrokeredConnectionControl control) {
037: super (control);
038: }
039:
040: public final Statement createStatement(int resultSetType,
041: int resultSetConcurrency, int resultSetHoldability)
042: throws SQLException {
043: try {
044: resultSetHoldability = statementHoldabilityCheck(resultSetHoldability);
045: return control
046: .wrapStatement(getRealConnection().createStatement(
047: resultSetType, resultSetConcurrency,
048: resultSetHoldability));
049: } catch (SQLException se) {
050: notifyException(se);
051: throw se;
052: }
053: }
054:
055: public final CallableStatement prepareCall(String sql,
056: int resultSetType, int resultSetConcurrency,
057: int resultSetHoldability) throws SQLException {
058: try {
059: resultSetHoldability = statementHoldabilityCheck(resultSetHoldability);
060: return control
061: .wrapStatement(getRealConnection().prepareCall(sql,
062: resultSetType, resultSetConcurrency,
063: resultSetHoldability), sql);
064: } catch (SQLException se) {
065: notifyException(se);
066: throw se;
067: }
068: }
069:
070: public final Savepoint setSavepoint() throws SQLException {
071: try {
072: control.checkSavepoint();
073: return getRealConnection().setSavepoint();
074: } catch (SQLException se) {
075: notifyException(se);
076: throw se;
077: }
078: }
079:
080: public final Savepoint setSavepoint(String name)
081: throws SQLException {
082: try {
083: control.checkSavepoint();
084: return getRealConnection().setSavepoint(name);
085: } catch (SQLException se) {
086: notifyException(se);
087: throw se;
088: }
089: }
090:
091: public final void rollback(Savepoint savepoint) throws SQLException {
092: try {
093: control.checkRollback();
094: getRealConnection().rollback(savepoint);
095: } catch (SQLException se) {
096: notifyException(se);
097: throw se;
098: }
099: }
100:
101: public final void releaseSavepoint(Savepoint savepoint)
102: throws SQLException {
103: try {
104: getRealConnection().releaseSavepoint(savepoint);
105: } catch (SQLException se) {
106: notifyException(se);
107: throw se;
108: }
109: }
110:
111: public final void setHoldability(int holdability)
112: throws SQLException {
113: try {
114: holdability = control.checkHoldCursors(holdability, false);
115: getRealConnection().setHoldability(holdability);
116: stateHoldability = holdability;
117: } catch (SQLException se) {
118: notifyException(se);
119: throw se;
120: }
121: }
122:
123: public final PreparedStatement prepareStatement(String sql,
124: int autoGeneratedKeys) throws SQLException {
125: try {
126: return control.wrapStatement(getRealConnection()
127: .prepareStatement(sql, autoGeneratedKeys), sql,
128: new Integer(autoGeneratedKeys));
129: } catch (SQLException se) {
130: notifyException(se);
131: throw se;
132: }
133: }
134:
135: public final PreparedStatement prepareStatement(String sql,
136: int[] columnIndexes) throws SQLException {
137: try {
138: return control.wrapStatement(getRealConnection()
139: .prepareStatement(sql, columnIndexes), sql,
140: columnIndexes);
141: } catch (SQLException se) {
142: notifyException(se);
143: throw se;
144: }
145: }
146:
147: public final PreparedStatement prepareStatement(String sql,
148: String[] columnNames) throws SQLException {
149: try {
150: return control.wrapStatement(getRealConnection()
151: .prepareStatement(sql, columnNames), sql,
152: columnNames);
153: } catch (SQLException se) {
154: notifyException(se);
155: throw se;
156: }
157: }
158:
159: public BrokeredPreparedStatement newBrokeredStatement(
160: BrokeredStatementControl statementControl, String sql,
161: Object generatedKeys) throws SQLException {
162: return new BrokeredPreparedStatement30(statementControl,
163: getJDBCLevel(), sql, generatedKeys);
164: }
165:
166: public BrokeredCallableStatement newBrokeredStatement(
167: BrokeredStatementControl statementControl, String sql)
168: throws SQLException {
169: return new BrokeredCallableStatement30(statementControl,
170: getJDBCLevel(), sql);
171: }
172:
173: int getJDBCLevel() {
174: return 3;
175: }
176:
177: }
|