public interface ResultQuery<R extends Record> extends Query
Select
query used
for a SELECT
statement.
However, some RDBMS also allow for other constructs, such as Postgres'
FETCH ALL IN {cursor-name}
. The easiest way to execute such a
query is by using
Another example (for SQLite):
Factory create = new PostgresFactory(connection);
Result<Record> result = create.fetch("FETCH ALL IN \"<unnamed cursor 1>\"");
Result<Record> result = create.fetch("pragma table_info('my_table')");
Modifier and Type | Method and Description |
---|---|
ResultQuery<R> |
bind(int index,
Object value)
Bind a new value to an indexed parameter
[#1886] If the bind value at
index is inlined (
Param.isInline() ) or if this query was created with
StatementType.STATIC_STATEMENT and there is an underlying
PreparedStatement kept open because of
Query.keepStatement(boolean) , the underlying
PreparedStatement will be closed automatically in order for
new bind values to have an effect. |
ResultQuery<R> |
bind(String param,
Object value)
Bind a new value to a named parameter
[#1886] If the bind value with name
param is inlined (
Param.isInline() ) or if this query was created with
StatementType.STATIC_STATEMENT and there is an underlying
PreparedStatement kept open because of
Query.keepStatement(boolean) , the underlying
PreparedStatement will be closed automatically in order for
new bind values to have an effect. |
Result<R> |
fetch()
Execute the query and return the generated result
This is the same as calling
Query.execute() and then
getResult()
The result and its contained records are attached to the original
Configuration by default. |
<T> List<T> |
fetch(Field<?> field,
Class<? extends T> type)
Execute the query and return all values for a field from the generated
result.
|
<T> List<T> |
fetch(Field<T> field)
Execute the query and return all values for a field from the generated
result.
|
<T,U> List<U> |
fetch(Field<T> field,
Converter<? super T,U> converter)
Execute the query and return all values for a field from the generated
result.
|
List<?> |
fetch(int fieldIndex)
Execute the query and return all values for a field index from the
generated result.
|
<T> List<T> |
fetch(int fieldIndex,
Class<? extends T> type)
Execute the query and return all values for a field index from the
generated result.
|
<U> List<U> |
fetch(int fieldIndex,
Converter<?,U> converter)
Execute the query and return all values for a field index from the
generated result.
|
<E> List<E> |
fetch(RecordMapper<? super R,E> mapper)
Fetch results into a custom mapper callback
|
List<?> |
fetch(String fieldName)
Execute the query and return all values for a field name from the
generated result.
|
<T> List<T> |
fetch(String fieldName,
Class<? extends T> type)
Execute the query and return all values for a field name from the
generated result.
|
<U> List<U> |
fetch(String fieldName,
Converter<?,U> converter)
Execute the query and return all values for a field name from the
generated result.
|
R |
fetchAny()
Execute the query and return at most one resulting record.
|
<T> T[] |
fetchArray(Field<?> field,
Class<? extends T> type)
Execute the query and return all values for a field from the generated
result.
|
<T> T[] |
fetchArray(Field<T> field)
Execute the query and return all values for a field from the generated
result.
|
<T,U> U[] |
fetchArray(Field<T> field,
Converter<? super T,U> converter)
Execute the query and return all values for a field from the generated
result.
|
Object[] |
fetchArray(int fieldIndex)
Execute the query and return all values for a field index from the
generated result.
|
<T> T[] |
fetchArray(int fieldIndex,
Class<? extends T> type)
Execute the query and return all values for a field index from the
generated result.
|
<U> U[] |
fetchArray(int fieldIndex,
Converter<?,U> converter)
Execute the query and return all values for a field index from the
generated result.
|
Object[] |
fetchArray(String fieldName)
Execute the query and return all values for a field name from the
generated result.
|
<T> T[] |
fetchArray(String fieldName,
Class<? extends T> type)
Execute the query and return all values for a field name from the
generated result.
|
<U> U[] |
fetchArray(String fieldName,
Converter<?,U> converter)
Execute the query and return all values for a field name from the
generated result.
|
Object[][] |
fetchArrays()
Execute the query and return the generated result as an Object matrix
You can access data like this
query.fetchArray()[recordIndex][fieldIndex] |
Map<Record,Result<R>> |
fetchGroups(Field<?>[] keys)
Execute the query and return a
Map with the result grouped by the
given keys. |
<E> Map<Record,List<E>> |
fetchGroups(Field<?>[] keys,
Class<? extends E> type)
Execute the query and return a
Map with results grouped by the
given keys and mapped into the given entity type. |
<K> Map<K,Result<R>> |
fetchGroups(Field<K> key)
Execute the query and return a
Map with one of the result's
columns as key and a list of corresponding records as value. |
<K,E> Map<K,List<E>> |
fetchGroups(Field<K> key,
Class<? extends E> type)
Return a
Map with results grouped by the given key and mapped
into the given entity type. |
<K,V> Map<K,List<V>> |
fetchGroups(Field<K> key,
Field<V> value)
Execute the query and return a
Map with one of the result's
columns as key and another one of the result's columns as value
Unlike fetchMap(Field, Field) , this method allows for non-unique
keys in the result set. |
<E> List<E> |
fetchInto(Class<? extends E> type)
Map resulting records onto a custom type.
|
<H extends RecordHandler<R>> |
fetchInto(H handler)
Fetch results into a custom handler callback
The resulting records are attached to the original
Configuration
by default. |
<Z extends Record> |
fetchInto(Table<Z> table)
Map resulting records onto a custom record.
|
FutureResult<R> |
fetchLater()
Fetch results asynchronously.
|
FutureResult<R> |
fetchLater(ExecutorService executor)
Fetch results asynchronously.
|
Cursor<R> |
fetchLazy()
Execute the query and "lazily" return the generated result
The returned
Cursor holds a reference to the executed
PreparedStatement and the associated ResultSet . |
Cursor<R> |
fetchLazy(int fetchSize)
Execute the query and "lazily" return the generated result
The returned
Cursor holds a reference to the executed
PreparedStatement and the associated ResultSet . |
List<Result<Record>> |
fetchMany()
Execute a query, possibly returning several result sets.
|
Map<Record,R> |
fetchMap(Field<?>[] keys)
Execute the query and return a
Map with keys as a map key and the
corresponding record as value. |
<E> Map<List<?>,E> |
fetchMap(Field<?>[] keys,
Class<? extends E> type)
Execute the query and return a
Map with results grouped by the
given keys and mapped into the given entity type. |
<K> Map<K,R> |
fetchMap(Field<K> key)
Execute the query and return a
Map with one of the result's
columns as key and the corresponding records as value. |
<K,E> Map<K,E> |
fetchMap(Field<K> key,
Class<? extends E> type)
Execute the query and return a
Map with results grouped by the
given key and mapped into the given entity type. |
<K,V> Map<K,V> |
fetchMap(Field<K> key,
Field<V> value)
Execute the query and return a
Map with one of the result's
columns as key and another one of the result's columns as value
An exception is thrown, if the key turns out to be non-unique in the
result set. |
List<Map<String,Object>> |
fetchMaps()
Execute the query and return the generated result as a list of name/value
maps.
|
R |
fetchOne()
Execute the query and return at most one resulting record.
|
<T> T |
fetchOne(Field<?> field,
Class<? extends T> type)
Execute the query and return return at most one resulting value for a
field from the generated result.
|
<T> T |
fetchOne(Field<T> field)
Execute the query and return return at most one resulting value for a
field from the generated result.
|
<T,U> U |
fetchOne(Field<T> field,
Converter<? super T,U> converter)
Execute the query and return return at most one resulting value for a
field from the generated result.
|
Object |
fetchOne(int fieldIndex)
Execute the query and return return at most one resulting value for a
field index from the generated result.
|
<T> T |
fetchOne(int fieldIndex,
Class<? extends T> type)
Execute the query and return return at most one resulting value for a
field index from the generated result.
|
<U> U |
fetchOne(int fieldIndex,
Converter<?,U> converter)
Execute the query and return return at most one resulting value for a
field index from the generated result.
|
Object |
fetchOne(String fieldName)
Execute the query and return return at most one resulting value for a
field name from the generated result.
|
<T> T |
fetchOne(String fieldName,
Class<? extends T> type)
Execute the query and return return at most one resulting value for a
field name from the generated result.
|
<U> U |
fetchOne(String fieldName,
Converter<?,U> converter)
Execute the query and return return at most one resulting value for a
field name from the generated result.
|
Object[] |
fetchOneArray()
Execute the query and return at most one resulting record as an array
You can access data like this
query.fetchOneArray()[fieldIndex] |
Map<String,Object> |
fetchOneMap()
Execute the query and return at most one resulting record as a name/value
map.
|
ResultSet |
fetchResultSet()
|
Class<? extends R> |
getRecordType()
The record type produced by this query
|
Result<R> |
getResult()
Return the result generated by a previous call to execute();
|
ResultQuery<R> |
keepStatement(boolean keepStatement)
Keep the query's underlying statement open after execution
This indicates to jOOQ that the query's underlying
Statement or
PreparedStatement should be kept open after execution. |
ResultQuery<R> |
maxRows(int rows)
Specify the maximum number of rows returned by the underlying
Statement
This is not the same as setting a LIMIT .. |
ResultQuery<R> |
queryTimeout(int timeout)
Specify the query timeout for the underlying JDBC
Statement |
cancel, close, execute, getBindValues, getParam, getParams, getSQL, getSQL, isExecutable
internalAPI
Result<R> getResult()
null
if no call to execute() was done
previously.Result<R> fetch() throws DataAccessException
This is the same as calling Query.execute()
and then
getResult()
The result and its contained records are attached to the original
Configuration
by default. Use Settings.isAttachRecords()
to override this behaviour.
DataAccessException
- if something went wrong executing the queryResultSet fetchResultSet() throws DataAccessException
ResultSet
This will return the ResultSet
returned by the JDBC driver,
leaving it untouched. Use this method when you want to use jOOQ for query
execution, but not for result fetching.
The returned ResultSet
can be used with
FactoryOperations.fetch(ResultSet)
DataAccessException
- if something went wrong executing the queryCursor<R> fetchLazy() throws DataAccessException
The returned Cursor
holds a reference to the executed
PreparedStatement
and the associated ResultSet
. Data can
be fetched (or iterated over) lazily, fetching records from the
ResultSet
one by one.
Depending on your JDBC driver's default behaviour, this may load the
whole database result into the driver's memory. In order to indicate to
the driver that you may not want to fetch all records at once, use
fetchLazy(int)
Client code is responsible for closing the cursor after use.
DataAccessException
- if something went wrong executing the queryfetchLazy(int)
Cursor<R> fetchLazy(int fetchSize) throws DataAccessException
The returned Cursor
holds a reference to the executed
PreparedStatement
and the associated ResultSet
. Data can
be fetched (or iterated over) lazily, fetching records from the
ResultSet
one by one.
Depending on your JDBC driver's behaviour, this will load only
fetchSize
records from the database into memory at once. For
more details, see also Statement.setFetchSize(int)
Client code is responsible for closing the cursor after use.
DataAccessException
- if something went wrong executing the queryfetchLazy()
,
Statement.setFetchSize(int)
List<Result<Record>> fetchMany() throws DataAccessException
Example (Sybase ASE):
String sql = "sp_help 'my_table'";
The result and its contained records are attached to the original
Configuration
by default. Use Settings.isAttachRecords()
to override this behaviour.
DataAccessException
- if something went wrong executing the query<T> List<T> fetch(Field<T> field) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(Field)
DataAccessException
- if something went wrong executing the query<T> List<T> fetch(Field<?> field, Class<? extends T> type) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(Field, Class)
DataAccessException
- if something went wrong executing the queryRecord.getValue(Field, Class)
<T,U> List<U> fetch(Field<T> field, Converter<? super T,U> converter) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(Field, Converter)
DataAccessException
- if something went wrong executing the queryRecord.getValue(Field, Converter)
List<?> fetch(int fieldIndex) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(int)
DataAccessException
- if something went wrong executing the query<T> List<T> fetch(int fieldIndex, Class<? extends T> type) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(int, Class)
DataAccessException
- if something went wrong executing the queryRecord.getValue(int, Class)
<U> List<U> fetch(int fieldIndex, Converter<?,U> converter) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(int, Converter)
DataAccessException
- if something went wrong executing the queryRecord.getValue(int, Converter)
List<?> fetch(String fieldName) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(String)
DataAccessException
- if something went wrong executing the query<T> List<T> fetch(String fieldName, Class<? extends T> type) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(String, Class)
DataAccessException
- if something went wrong executing the queryRecord.getValue(String, Class)
<U> List<U> fetch(String fieldName, Converter<?,U> converter) throws DataAccessException
This is the same as calling fetch()
and then
Result.getValues(String, Converter)
DataAccessException
- if something went wrong executing the queryRecord.getValue(String, Converter)
<T> T fetchOne(Field<T> field) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(Field)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record<T> T fetchOne(Field<?> field, Class<? extends T> type) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(Field, Class)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record<T,U> U fetchOne(Field<T> field, Converter<? super T,U> converter) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(Field, Converter)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one recordObject fetchOne(int fieldIndex) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(int)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record<T> T fetchOne(int fieldIndex, Class<? extends T> type) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(int, Class)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record<U> U fetchOne(int fieldIndex, Converter<?,U> converter) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(int, Converter)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one recordObject fetchOne(String fieldName) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(int)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record<T> T fetchOne(String fieldName, Class<? extends T> type) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(String, Class)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record<U> U fetchOne(String fieldName, Converter<?,U> converter) throws DataAccessException
This is the same as calling fetchOne()
and then
Record.getValue(String, Converter)
null
if the query returned no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one recordR fetchOne() throws DataAccessException
The resulting record is attached to the original Configuration
by
default. Use Settings.isAttachRecords()
to override this
behaviour.
null
if the query returns no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one recordR fetchAny() throws DataAccessException
The resulting record is attached to the original Configuration
by
default. Use Settings.isAttachRecords()
to override this
behaviour.
null
if the query
returns no records.DataAccessException
- if something went wrong executing the queryList<Map<String,Object>> fetchMaps() throws DataAccessException
DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the key field returned two or more
equal values from the result set.Result.intoMaps()
,
Record.intoMap()
Map<String,Object> fetchOneMap() throws DataAccessException
null
if the query returns no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one recordResult.intoMaps()
,
Record.intoMap()
<K> Map<K,R> fetchMap(Field<K> key) throws DataAccessException
Map
with one of the result's
columns as key and the corresponding records as value.
An exception is thrown, if the key turns out to be non-unique in the
result set. Use fetchGroups(Field)
instead, if your keys are
non-unique
The resulting records are attached to the original Configuration
by default. Use Settings.isAttachRecords()
to override this
behaviour.
K
- The key's generic field typekey
- The key field. Client code must assure that this field is
unique in the result set.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the key field returned two or more
equal values from the result set.Result.intoMap(Field)
<K,V> Map<K,V> fetchMap(Field<K> key, Field<V> value) throws DataAccessException
Map
with one of the result's
columns as key and another one of the result's columns as value
An exception is thrown, if the key turns out to be non-unique in the
result set. Use fetchGroups(Field, Field)
instead, if your keys
are non-unique
K
- The key's generic field typeV
- The value's generic field typekey
- The key field. Client code must assure that this field is
unique in the result set.value
- The value fieldDataAccessException
- if something went wrong executing the queryInvalidResultException
- if the key field returned two or more
equal values from the result set.Result.intoMap(Field, Field)
Map<Record,R> fetchMap(Field<?>[] keys) throws DataAccessException
Map
with keys as a map key and the
corresponding record as value.
An exception is thrown, if the keys turn out to be non-unique in the
result set. Use fetchGroups(Field[])
instead, if your keys are
non-unique.
keys
- The keys. Client code must assure that keys are unique in the
result set.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the key list is non-unique in the
result set.Result.intoMap(Field[])
<E> Map<List<?>,E> fetchMap(Field<?>[] keys, Class<? extends E> type) throws MappingException
Map
with results grouped by the
given keys and mapped into the given entity type.
An InvalidResultException
is thrown, if the keys are non-unique
in the result set. Use fetchGroups(Field[], Class)
instead, if
your keys are non-unique.
keys
- The keys. Client code must assure that keys are unique in the
result set. If this is null
or an empty array,
the resulting map will contain at most one entry.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the keys are non-unique in the result
set.MappingException
- wrapping any reflection or data type conversion
exception that might have occurred while mapping recordsResult.intoMap(Field[], Class)
<K,E> Map<K,E> fetchMap(Field<K> key, Class<? extends E> type) throws DataAccessException
Map
with results grouped by the
given key and mapped into the given entity type.
An exception is thrown, if the key turn out to be non-unique in the
result set. Use fetchGroups(Field, Class)
instead, if your key
is non-unique.
key
- The key. Client code must assure that key is unique in the
result set.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the key is non-unique in the result
set.Result.intoMap(Field, Class)
<K> Map<K,Result<R>> fetchGroups(Field<K> key) throws DataAccessException
Map
with one of the result's
columns as key and a list of corresponding records as value.
Unlike fetchMap(Field)
, this method allows for non-unique keys
in the result set.
The resulting records are attached to the original Configuration
by default. Use Settings.isAttachRecords()
to override this
behaviour.
K
- The key's generic field typekey
- The key field.DataAccessException
- if something went wrong executing the queryResult.intoGroups(Field)
<K,V> Map<K,List<V>> fetchGroups(Field<K> key, Field<V> value) throws DataAccessException
Map
with one of the result's
columns as key and another one of the result's columns as value
Unlike fetchMap(Field, Field)
, this method allows for non-unique
keys in the result set.
K
- The key's generic field typeV
- The value's generic field typekey
- The key field.value
- The value fieldDataAccessException
- if something went wrong executing the queryResult.intoGroups(Field, Field)
Map<Record,Result<R>> fetchGroups(Field<?>[] keys) throws DataAccessException
Map
with the result grouped by the
given keys.
Unlike fetchMap(Field[])
, this method allows for non-unique keys
in the result set.
keys
- The keys used for result grouping.DataAccessException
- if something went wrong executing the queryResult.intoGroups(Field[])
<E> Map<Record,List<E>> fetchGroups(Field<?>[] keys, Class<? extends E> type) throws MappingException
Map
with results grouped by the
given keys and mapped into the given entity type.
Unlike fetchMap(Field[], Class)
, this method allows for
non-unique keys in the result set.
keys
- The keys. If this is null
or an empty array, the
resulting map will contain at most one entry.DataAccessException
- if something went wrong executing the queryMappingException
- wrapping any reflection or data type conversion
exception that might have occurred while mapping recordsResult.intoGroups(Field[], Class)
<K,E> Map<K,List<E>> fetchGroups(Field<K> key, Class<? extends E> type) throws DataAccessException, MappingException
Map
with results grouped by the given key and mapped
into the given entity type.K
- The key's generic field typeE
- The generic entity type.key
- The key field.type
- The entity type.DataAccessException
- if something went wrong executing the queryMappingException
- wrapping any reflection or data type conversion
exception that might have occurred while mapping recordsResult.intoGroups(Field, Class)
Object[][] fetchArrays() throws DataAccessException
You can access data like this
query.fetchArray()[recordIndex][fieldIndex]
DataAccessException
- if something went wrong executing the queryResult.intoArray()
Object[] fetchArray(int fieldIndex) throws DataAccessException
You can access data like this
query.fetchArray(fieldIndex)[recordIndex]
Object[]
, depending on whether jOOQ has any
knowledge about fieldIndex
's actual type.DataAccessException
- if something went wrong executing the queryResult.intoArray(int)
<T> T[] fetchArray(int fieldIndex, Class<? extends T> type) throws DataAccessException
You can access data like this
query.fetchArray(fieldIndex)[recordIndex]
DataAccessException
- if something went wrong executing the queryResult.intoArray(int, Class)
<U> U[] fetchArray(int fieldIndex, Converter<?,U> converter) throws DataAccessException
You can access data like this
query.fetchArray(fieldIndex)[recordIndex]
DataAccessException
- if something went wrong executing the queryResult.intoArray(int, Converter)
Object[] fetchArray(String fieldName) throws DataAccessException
You can access data like this
query.fetchArray(fieldName)[recordIndex]
Object[]
, depending on whether jOOQ has any
knowledge about fieldName
's actual type.DataAccessException
- if something went wrong executing the queryResult.intoArray(String)
<T> T[] fetchArray(String fieldName, Class<? extends T> type) throws DataAccessException
You can access data like this
query.fetchArray(fieldName)[recordIndex]
DataAccessException
- if something went wrong executing the queryResult.intoArray(String, Converter)
<U> U[] fetchArray(String fieldName, Converter<?,U> converter) throws DataAccessException
You can access data like this
query.fetchArray(fieldName)[recordIndex]
DataAccessException
- if something went wrong executing the queryResult.intoArray(String, Class)
<T> T[] fetchArray(Field<T> field) throws DataAccessException
You can access data like this
query.fetchArray(field)[recordIndex]
DataAccessException
- if something went wrong executing the queryResult.intoArray(Field)
<T> T[] fetchArray(Field<?> field, Class<? extends T> type) throws DataAccessException
You can access data like this
query.fetchArray(field)[recordIndex]
DataAccessException
- if something went wrong executing the queryResult.intoArray(Field, Class)
<T,U> U[] fetchArray(Field<T> field, Converter<? super T,U> converter) throws DataAccessException
You can access data like this
query.fetchArray(field)[recordIndex]
DataAccessException
- if something went wrong executing the queryResult.intoArray(Field, Converter)
Object[] fetchOneArray() throws DataAccessException
You can access data like this
query.fetchOneArray()[fieldIndex]
null
if the query returns no
records.DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record<E> List<E> fetchInto(Class<? extends E> type) throws DataAccessException, MappingException
This is the same as calling fetch().into(type)
. See
Record.into(Class)
for more details
E
- The generic entity type.type
- The entity type.DataAccessException
- if something went wrong executing the queryMappingException
- wrapping any reflection or data type conversion
exception that might have occurred while mapping recordsRecord.into(Class)
,
Result.into(Class)
<Z extends Record> Result<Z> fetchInto(Table<Z> table) throws DataAccessException
This is the same as calling fetch().into(table)
. See
Record.into(Table)
for more details
The result and its contained records are attached to the original
Configuration
by default. Use Settings.isAttachRecords()
to override this behaviour.
Z
- The generic table record type.table
- The table type.DataAccessException
- if something went wrong executing the queryRecord.into(Table)
,
Result.into(Table)
<H extends RecordHandler<R>> H fetchInto(H handler) throws DataAccessException
The resulting records are attached to the original Configuration
by default. Use Settings.isAttachRecords()
to override this
behaviour.
handler
- The handler callbackDataAccessException
- if something went wrong executing the query<E> List<E> fetch(RecordMapper<? super R,E> mapper) throws DataAccessException
mapper
- The mapper callbackDataAccessException
- if something went wrong executing the queryFutureResult<R> fetchLater() throws DataAccessException
This method wraps fetching of records in a
Future
, such that you can access the actual
records at a future instant. This is especially useful when
This will internally create a "single thread executor", that is shut down
at the end of the FutureResult
's lifecycle. Use
fetchLater(ExecutorService)
instead, if you want control over
your executing threads.
The result and its contained records are attached to the original
Configuration
by default. Use Settings.isAttachRecords()
to override this behaviour.
DataAccessException
- if something went wrong executing the queryFutureResult<R> fetchLater(ExecutorService executor) throws DataAccessException
This method wraps fetching of records in a
Future
, such that you can access the actual
records at a future instant. This is especially useful when
Use this method rather than fetchLater()
, in order to keep
control over thread lifecycles, if you manage threads in a J2EE container
or with Spring, for instance.
The result and its contained records are attached to the original
Configuration
by default. Use Settings.isAttachRecords()
to override this behaviour.
executor
- A custom executorDataAccessException
- if something went wrong executing the queryResultQuery<R> bind(String param, Object value) throws IllegalArgumentException, DataTypeException
[#1886] If the bind value with name param
is inlined (
Param.isInline()
) or if this query was created with
StatementType.STATIC_STATEMENT
and there is an underlying
PreparedStatement
kept open because of
Query.keepStatement(boolean)
, the underlying
PreparedStatement
will be closed automatically in order for
new bind values to have an effect.
bind
in interface Query
param
- The named parameter name. If this is a number, then this is
the same as calling Query.bind(int, Object)
value
- The new bind value.IllegalArgumentException
- if there is no parameter by the given
parameter name or index.DataTypeException
- if value
cannot be converted into
the parameter's data typeResultQuery<R> bind(int index, Object value) throws IllegalArgumentException, DataTypeException
[#1886] If the bind value at index
is inlined (
Param.isInline()
) or if this query was created with
StatementType.STATIC_STATEMENT
and there is an underlying
PreparedStatement
kept open because of
Query.keepStatement(boolean)
, the underlying
PreparedStatement
will be closed automatically in order for
new bind values to have an effect.
bind
in interface Query
index
- The parameter index, starting with 1value
- The new bind value.IllegalArgumentException
- if there is no parameter by the given
parameter index.DataTypeException
- if value
cannot be converted into
the parameter's data typeResultQuery<R> queryTimeout(int timeout)
Statement
queryTimeout
in interface Query
Statement.setQueryTimeout(int)
ResultQuery<R> keepStatement(boolean keepStatement)
This indicates to jOOQ that the query's underlying Statement
or
PreparedStatement
should be kept open after execution. If it is
kept open, client code is responsible for properly closing it using
Query.close()
keepStatement
in interface Query
keepStatement
- Whether to keep the underlying statement openResultQuery<R> maxRows(int rows)
Statement
This is not the same as setting a LIMIT .. OFFSET
clause
onto the statement, where the result set is restricted within the
database.
Statement.setMaxRows(int)
Copyright © 2013. All Rights Reserved.