|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ResultQuery<R extends Record>
A query that can return results. Mostly, this is a 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')");
Method Summary | ||
---|---|---|
ResultQuery<R> |
bind(int index,
Object value)
Bind a new value to an indexed parameter |
|
ResultQuery<R> |
bind(String param,
Object value)
Bind a new value to a named parameter |
|
Result<R> |
fetch()
Execute the query and return the generated result This is the same as calling Query.execute() and then
getResult() |
|
|
fetch(Field<?> field,
Class<? extends T> type)
Execute the query and return all values for a field from the generated result. |
|
|
fetch(Field<T> field)
Execute the query and return all values for a field from the generated result. |
|
|
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. |
|
|
fetch(int fieldIndex,
Class<? extends T> type)
Execute the query and return all values for a field index from the generated result. |
|
|
fetch(int fieldIndex,
Converter<?,U> converter)
Execute the query and return all values for a field index from the generated result. |
|
List<?> |
fetch(String fieldName)
Execute the query and return all values for a field name from the generated result. |
|
|
fetch(String fieldName,
Class<? extends T> type)
Execute the query and return all values for a field name from the generated result. |
|
|
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. |
|
|
fetchArray(Field<?> field,
Class<? extends T> type)
Execute the query and return all values for a field from the generated result. |
|
|
fetchArray(Field<T> field)
Execute the query and return all values for a field from the generated result. |
|
|
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. |
|
|
fetchArray(int fieldIndex,
Class<? extends T> type)
Execute the query and return all values for a field index from the generated result. |
|
|
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. |
|
|
fetchArray(String fieldName,
Class<? extends T> type)
Execute the query and return all values for a field name from the generated result. |
|
|
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] |
|
|
fetchInto(Class<? extends E> type)
Map resulting records onto a custom type. |
|
|
fetchInto(H handler)
Fetch results into a custom handler callback |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
fetchOne(Field<T> field)
Execute the query and return return at most one resulting value for a field from the generated result. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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()
Execute the query and return the generated result as a JDBC ResultSet
This will return the ResultSet returned by the JDBC driver,
leaving it untouched. |
|
Class<? extends R> |
getRecordType()
The record type produced by this query |
|
Result<R> |
getResult()
Return the result generated by a previous call to execute(); |
Methods inherited from interface org.jooq.Query |
---|
execute, getBindValues, getParam, getParams, getSQL, getSQL |
Methods inherited from interface org.jooq.Attachable |
---|
attach |
Methods inherited from interface org.jooq.Adapter |
---|
internalAPI |
Method Detail |
---|
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()
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'";
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 queryStore.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
- This exception is thrown
<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
- This exception is thrown
<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
- This exception is thrown
Object fetchOne(int fieldIndex) throws DataAccessException
This is the same as calling fetchOne()
and then
Store.getValue(int)
null
if the query returned no
records.
DataAccessException
- This exception is thrown
<T> T fetchOne(int fieldIndex, Class<? extends T> type) throws DataAccessException
This is the same as calling fetchOne()
and then
Store.getValue(int, Class)
null
if the query returned no
records.
DataAccessException
- This exception is thrown
<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
- This exception is thrown
Object fetchOne(String fieldName) throws DataAccessException
This is the same as calling fetchOne()
and then
Store.getValue(int)
null
if the query returned no
records.
DataAccessException
- This exception is thrown
<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
- This exception is thrown
<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
- This exception is thrown
R fetchOne() throws DataAccessException
null
if the query returns no
records.
DataAccessException
- This exception is thrown
R fetchAny() throws DataAccessException
null
if the query
returns no records.
DataAccessException
- if something went wrong executing the queryList<Map<String,Object>> fetchMaps() throws DataAccessException
DataAccessException
- This exception is thrown
Map<String,Object> fetchOneMap() throws DataAccessException
null
if the query returns no
records.
DataAccessException
- This exception is thrown
<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.
K
- The key's generic field typekey
- The key field. Client code must assure that this field is
unique in the result set.
DataAccessException
- This exception is thrown
<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.
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 field
DataAccessException
- This exception is thrown
Object[][] fetchArrays() throws DataAccessException
You can access data like this
query.fetchArray()[recordIndex][fieldIndex]
DataAccessException
- if something went wrong executing the queryObject[] fetchArray(int fieldIndex) throws DataAccessException
You can access data like this
query.fetchArray(fieldIndex)[recordIndex]
DataAccessException
- if something went wrong executing the query<T> T[] fetchArray(int fieldIndex, Class<? extends T> type) throws DataAccessException
You can access data like this
query.fetchArray(fieldIndex)[recordIndex]
DataAccessException
<U> U[] fetchArray(int fieldIndex, Converter<?,U> converter) throws DataAccessException
You can access data like this
query.fetchArray(fieldIndex)[recordIndex]
DataAccessException
Object[] fetchArray(String fieldName) throws DataAccessException
You can access data like this
query.fetchArray(fieldName)[recordIndex]
DataAccessException
- if something went wrong executing the query<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 query<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 query<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 query<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 query<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 queryObject[] fetchOneArray() throws DataAccessException
You can access data like this
query.fetchOneArray()[fieldIndex]
null
if the query returns no
records.
DataAccessException
- This exception is thrown
<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 query
MappingException
- 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
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
handler
- The handler callback
DataAccessException
- 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.
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.
executor
- A custom executor
DataAccessException
- if something went wrong executing the queryClass<? extends R> getRecordType()
ResultQuery<R> bind(String param, Object value) throws IllegalArgumentException, DataTypeException
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
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 type
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |