[jOOQ/jOOQ#13149] Let Query.keepStatement() return CloseableQuery and
ResultQuery.keepStatement() return CloseableResultQuery
This commit is contained in:
parent
d3b6d5ead0
commit
44bb4aa7c3
103
jOOQ/src/main/java/org/jooq/CloseableQuery.java
Normal file
103
jOOQ/src/main/java/org/jooq/CloseableQuery.java
Normal file
@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Other licenses:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Commercial licenses for this work are available. These replace the above
|
||||
* ASL 2.0 and offer limited warranties, support, maintenance, and commercial
|
||||
* database integrations.
|
||||
*
|
||||
* For more information, please visit: http://www.jooq.org/licenses
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
package org.jooq;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.util.concurrent.CompletionStage;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import org.jooq.conf.StatementType;
|
||||
import org.jooq.exception.DataAccessException;
|
||||
import org.jooq.exception.DataTypeException;
|
||||
import org.jooq.impl.DSL;
|
||||
|
||||
import org.jetbrains.annotations.Blocking;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A {@link Query} that holds a reference to the underlying
|
||||
* {@link PreparedStatement} without closing it, for reuse.
|
||||
* <p>
|
||||
* It was created via {@link Query#keepStatement(boolean)} and must be treated
|
||||
* as a resource, e.g. in a <code>try-with-resources</code> statement.
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
public interface CloseableQuery extends Query, AutoCloseable {
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableQuery bind(String param, Object value) throws IllegalArgumentException, DataTypeException;
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableQuery bind(int index, Object value) throws IllegalArgumentException, DataTypeException;
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// JDBC methods
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableQuery poolable(boolean poolable);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableQuery queryTimeout(int seconds);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableQuery keepStatement(boolean keepStatement);
|
||||
|
||||
/**
|
||||
* Close the underlying statement.
|
||||
* <p>
|
||||
* This closes the query's underlying {@link Statement} or
|
||||
* {@link PreparedStatement} if a previous call to
|
||||
* {@link #keepStatement(boolean)} indicated that jOOQ should keep
|
||||
* statements open after query execution. If there is no underlying open
|
||||
* statement, this call is simply ignored.
|
||||
*
|
||||
* @throws DataAccessException If something went wrong closing the statement
|
||||
* @see java.sql.Statement#close()
|
||||
*/
|
||||
@Override
|
||||
void close() throws DataAccessException;
|
||||
|
||||
}
|
||||
243
jOOQ/src/main/java/org/jooq/CloseableResultQuery.java
Normal file
243
jOOQ/src/main/java/org/jooq/CloseableResultQuery.java
Normal file
@ -0,0 +1,243 @@
|
||||
/*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Other licenses:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Commercial licenses for this work are available. These replace the above
|
||||
* ASL 2.0 and offer limited warranties, support, maintenance, and commercial
|
||||
* database integrations.
|
||||
*
|
||||
* For more information, please visit: http://www.jooq.org/licenses
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
package org.jooq;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.jooq.exception.DataTypeException;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A {@link ResultQuery} that holds a reference to the underlying
|
||||
* {@link PreparedStatement} without closing it, for reuse.
|
||||
* <p>
|
||||
* It was created via {@link ResultQuery#keepStatement(boolean)} and must be
|
||||
* treated as a resource, e.g. in a <code>try-with-resources</code> statement.
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
public interface CloseableResultQuery<R extends Record> extends ResultQuery<R>, CloseableQuery {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
CloseableResultQuery<R> bind(String param, Object value) throws IllegalArgumentException, DataTypeException;
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
CloseableResultQuery<R> bind(int index, Object value) throws IllegalArgumentException, DataTypeException;
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// JDBC methods
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
CloseableResultQuery<R> poolable(boolean poolable);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
CloseableResultQuery<R> queryTimeout(int timeout);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
CloseableResultQuery<R> keepStatement(boolean keepStatement);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableResultQuery<R> maxRows(int rows);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableResultQuery<R> fetchSize(int rows);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableResultQuery<R> resultSetConcurrency(int resultSetConcurrency);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableResultQuery<R> resultSetType(int resultSetType);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableResultQuery<R> resultSetHoldability(int resultSetHoldability);
|
||||
|
||||
/**
|
||||
* @deprecated - 3.10 - [#6254] - This functionality is no longer supported
|
||||
* and will be removed in 4.0
|
||||
*/
|
||||
@Override
|
||||
@NotNull
|
||||
@Deprecated(forRemoval = true, since = "3.10")
|
||||
CloseableResultQuery<R> intern(Field<?>... fields);
|
||||
|
||||
/**
|
||||
* @deprecated - 3.10 - [#6254] - This functionality is no longer supported
|
||||
* and will be removed in 4.0
|
||||
*/
|
||||
@Override
|
||||
@NotNull
|
||||
@Deprecated(forRemoval = true, since = "3.10")
|
||||
CloseableResultQuery<R> intern(int... fieldIndexes);
|
||||
|
||||
/**
|
||||
* @deprecated - 3.10 - [#6254] - This functionality is no longer supported
|
||||
* and will be removed in 4.0
|
||||
*/
|
||||
@Override
|
||||
@NotNull
|
||||
@Deprecated(forRemoval = true, since = "3.10")
|
||||
CloseableResultQuery<R> intern(String... fieldNames);
|
||||
|
||||
/**
|
||||
* @deprecated - 3.10 - [#6254] - This functionality is no longer supported
|
||||
* and will be removed in 4.0
|
||||
*/
|
||||
@Override
|
||||
@NotNull
|
||||
@Deprecated(forRemoval = true, since = "3.10")
|
||||
CloseableResultQuery<R> intern(Name... fieldNames);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
<X extends Record> CloseableResultQuery<X> coerce(Table<X> table);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableResultQuery<Record> coerce(Field<?>... fields);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
CloseableResultQuery<Record> coerce(Collection<? extends Field<?>> fields);
|
||||
|
||||
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1> CloseableResultQuery<Record1<T1>> coerce(Field<T1> field1);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2> CloseableResultQuery<Record2<T1, T2>> coerce(Field<T1> field1, Field<T2> field2);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3> CloseableResultQuery<Record3<T1, T2, T3>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4> CloseableResultQuery<Record4<T1, T2, T3, T4>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5> CloseableResultQuery<Record5<T1, T2, T3, T4, T5>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6> CloseableResultQuery<Record6<T1, T2, T3, T4, T5, T6>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7> CloseableResultQuery<Record7<T1, T2, T3, T4, T5, T6, T7>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8> CloseableResultQuery<Record8<T1, T2, T3, T4, T5, T6, T7, T8>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9> CloseableResultQuery<Record9<T1, T2, T3, T4, T5, T6, T7, T8, T9>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> CloseableResultQuery<Record10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> CloseableResultQuery<Record11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> CloseableResultQuery<Record12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> CloseableResultQuery<Record13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> CloseableResultQuery<Record14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> CloseableResultQuery<Record15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> CloseableResultQuery<Record16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> CloseableResultQuery<Record17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> CloseableResultQuery<Record18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> CloseableResultQuery<Record19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> CloseableResultQuery<Record20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> CloseableResultQuery<Record21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> CloseableResultQuery<Record22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>> coerce(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21, Field<T22> field22);
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user