public interface FactoryOperations extends Configuration
Factory
Factory
Modifier and Type | Method and Description |
---|---|
void |
attach(Attachable... attachables)
Attach this
Factory to some attachables |
void |
attach(Collection<Attachable> attachables)
Attach this
Factory to some attachables |
Batch |
batch(Collection<? extends Query> queries)
Execute a set of queries in batch mode (without bind values).
|
Batch |
batch(Query... queries)
Execute a set of queries in batch mode (without bind values).
|
BatchBindStep |
batch(Query query)
Execute a set of queries in batch mode (with bind values).
|
Batch |
batchStore(Collection<? extends UpdatableRecord<?>> records)
Execute a set of
INSERT and UPDATE queries in
batch mode (with bind values). |
Batch |
batchStore(UpdatableRecord<?>... records)
Execute a set of
INSERT and UPDATE queries in
batch mode (with bind values). |
void |
commit()
Convenience method to access
Connection.commit()
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
<T extends Number> |
currval(Sequence<T> sequence)
Convenience method to fetch the CURRVAL for a sequence directly from this
Factory 's underlying JDBC Connection |
<R extends Record> |
delete(Table<R> table)
Create a new DSL delete statement.
|
<R extends Record> |
deleteQuery(Table<R> table)
Create a new
DeleteQuery |
int |
execute(String sql)
Execute a query holding plain SQL.
|
int |
execute(String sql,
Object... bindings)
Execute a new query holding plain SQL.
|
int |
execute(String sql,
QueryPart... parts)
Execute a new query holding plain SQL.
|
<R extends UpdatableRecord<R>> |
executeDelete(R record)
Delete a record from a table
DELETE FROM [table] WHERE [record is supplied record] |
<R extends TableRecord<R>,T> |
executeDelete(R record,
Condition condition)
Delete a record from a table
DELETE FROM [table] WHERE [condition] |
<R extends TableRecord<R>> |
executeDelete(Table<R> table)
Deprecated.
- 2.5.0 [#1692] - The semantics of
executeDelete(TableRecord, Condition) has changed.
This method here is no longer necessary. |
<R extends TableRecord<R>,T> |
executeDelete(Table<R> table,
Condition condition)
Deprecated.
- 2.5.0 [#1692] - The semantics of
executeDelete(TableRecord, Condition) has changed.
This method here is no longer necessary. |
<R extends TableRecord<R>> |
executeDeleteOne(Table<R> table)
Deprecated.
- 2.5.0 [#1692] - The semantics of
executeDelete(TableRecord, Condition) has changed.
This method here is no longer necessary. |
<R extends TableRecord<R>,T> |
executeDeleteOne(Table<R> table,
Condition condition)
Deprecated.
- 2.5.0 [#1692] - The semantics of
executeDelete(TableRecord, Condition) has changed.
This method here is no longer necessary. |
<R extends TableRecord<R>> |
executeInsert(R record)
Insert one record
This executes something like the following statement:
INSERT INTO [table] ... |
<R extends TableRecord<R>> |
executeInsert(Table<R> table,
R record)
Deprecated.
- 2.5.0 [#1692] - Use
executeInsert(TableRecord)
instead |
<R extends UpdatableRecord<R>> |
executeUpdate(R record)
Update a table
UPDATE [table] SET [modified values in record] WHERE [record is supplied record] |
<R extends TableRecord<R>,T> |
executeUpdate(R record,
Condition condition)
Update a table
UPDATE [table] SET [modified values in record] WHERE [condition] |
<R extends TableRecord<R>> |
executeUpdate(Table<R> table,
R record)
Deprecated.
- 2.5.0 [#1692] - This "mass" update is no longer supported
|
<R extends TableRecord<R>,T> |
executeUpdate(Table<R> table,
R record,
Condition condition)
Deprecated.
- 2.5.0 [#1692] - Use
executeUpdate(TableRecord, Condition) instead |
<R extends TableRecord<R>> |
executeUpdateOne(Table<R> table,
R record)
Deprecated.
- 2.5.0 [#1692] - This "mass" update is no longer supported
|
<R extends TableRecord<R>,T> |
executeUpdateOne(Table<R> table,
R record,
Condition condition)
Deprecated.
- 2.5.0 [#1692] - The semantics of
executeUpdate(TableRecord, Condition) has changed.
This method here is no longer necessary. |
Result<Record> |
fetch(ResultSet rs)
|
Result<Record> |
fetch(String sql)
Execute a new query holding plain SQL.
|
Result<Record> |
fetch(String sql,
Object... bindings)
Execute a new query holding plain SQL.
|
Result<Record> |
fetch(String sql,
QueryPart... parts)
Execute a new query holding plain SQL.
|
<R extends Record> |
fetch(Table<R> table)
Execute and return all records for
SELECT * FROM [table]
The result and its contained records are attached to this
Configuration by default. |
<R extends Record> |
fetch(Table<R> table,
Condition condition)
Execute and return all records for
SELECT * FROM [table] WHERE [condition]
The result and its contained records are attached to this
Configuration by default. |
<R extends Record> |
fetchAny(Table<R> table)
Execute and return zero or one record for
SELECT * FROM [table] LIMIT 1
The resulting record is attached to this Configuration by
default. |
Result<Record> |
fetchFromCSV(String string)
Fetch all data from a CSV string.
|
Result<Record> |
fetchFromCSV(String string,
char delimiter)
Fetch all data from a CSV string.
|
Cursor<Record> |
fetchLazy(ResultSet rs)
|
Cursor<Record> |
fetchLazy(String sql)
Execute a new query holding plain SQL and "lazily" return the generated
result.
|
Cursor<Record> |
fetchLazy(String sql,
Object... bindings)
Execute a new query holding plain SQL and "lazily" return the generated
result.
|
Cursor<Record> |
fetchLazy(String sql,
QueryPart... parts)
Execute a new query holding plain SQL and "lazily" return the generated
result.
|
List<Result<Record>> |
fetchMany(String sql)
Execute a new query holding plain SQL, possibly returning several result
sets
Example (Sybase ASE):
String sql = "sp_help 'my_table'";
NOTE: When inserting plain SQL into jOOQ objects, you must
guarantee syntax integrity. |
List<Result<Record>> |
fetchMany(String sql,
Object... bindings)
Execute a new query holding plain SQL, possibly returning several result
sets.
|
List<Result<Record>> |
fetchMany(String sql,
QueryPart... parts)
Execute a new query holding plain SQL, possibly returning several result
sets.
|
Record |
fetchOne(String sql)
Execute a new query holding plain SQL.
|
Record |
fetchOne(String sql,
Object... bindings)
Execute a new query holding plain SQL.
|
Record |
fetchOne(String sql,
QueryPart... parts)
Execute a new query holding plain SQL.
|
<R extends Record> |
fetchOne(Table<R> table)
Execute and return zero or one record for
SELECT * FROM [table]
The resulting record is attached to this Configuration by
default. |
<R extends Record> |
fetchOne(Table<R> table,
Condition condition)
Execute and return zero or one record for
SELECT * FROM [table] WHERE [condition]
The resulting record is attached to this Configuration by
default. |
boolean |
getAutoCommit()
Convenience method to access
Connection.getAutoCommit()
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
int |
getHoldability()
Convenience method to access
Connection.getHoldability()
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
int |
getTransactionIsolation()
Convenience method to access
Connection.getTransactionIsolation()
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
<R extends Record> |
insertInto(Table<R> into)
Create a new DSL insert statement.
|
<R extends Record> |
insertInto(Table<R> into,
Collection<? extends Field<?>> fields)
Create a new DSL insert statement.
|
<R extends Record> |
insertInto(Table<R> into,
Field<?>... fields)
Create a new DSL insert statement.
|
<R extends Record> |
insertInto(Table<R> into,
Select<?> select)
Deprecated.
- 2.0.3 - Use any of these methods instead:
|
<R extends Record> |
insertQuery(Table<R> into)
Create a new
InsertQuery |
BigInteger |
lastID()
Retrieve the last inserted ID.
|
<R extends TableRecord<R>> |
loadInto(Table<R> table)
Create a new
Loader object to load data from a CSV or XML
source |
<R extends Record> |
mergeInto(Table<R> table)
Create a new DSL SQL standard MERGE statement.
|
<R extends Record> |
mergeInto(Table<R> table,
Collection<? extends Field<?>> fields)
Create a new DSL merge statement (H2-specific syntax)
|
<R extends Record> |
mergeInto(Table<R> table,
Field<?>... fields)
Create a new DSL merge statement (H2-specific syntax)
This statement is available from DSL syntax only.
|
<R extends TableRecord<R>> |
newRecord(Table<R> table)
Create a new
Record that can be inserted into the corresponding
table. |
<R extends TableRecord<R>> |
newRecord(Table<R> table,
Object source)
Create a new pre-filled
Record that can be inserted into the
corresponding table. |
<R extends UDTRecord<R>> |
newRecord(UDT<R> type)
Create a new
UDTRecord . |
<T extends Number> |
nextval(Sequence<T> sequence)
Convenience method to fetch the NEXTVAL for a sequence directly from this
Factory 's underlying JDBC Connection |
Query |
query(String sql)
Create a new query holding plain SQL.
|
Query |
query(String sql,
Object... bindings)
Create a new query holding plain SQL.
|
Query |
query(String sql,
QueryPart... parts)
Create a new query holding plain SQL.
|
void |
releaseSavepoint(Savepoint savepoint)
Convenience method to access
Connection.releaseSavepoint(Savepoint)
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
String |
render(QueryPart part)
Render a QueryPart in the context of this factory
This is the same as calling
renderContext().render(part) |
String |
renderInlined(QueryPart part)
Render a QueryPart in the context of this factory, inlining all bind
variables.
|
String |
renderNamedParams(QueryPart part)
Render a QueryPart in the context of this factory, rendering bind
variables as named parameters.
|
ResultQuery<Record> |
resultQuery(String sql)
Create a new query holding plain SQL.
|
ResultQuery<Record> |
resultQuery(String sql,
Object... bindings)
Create a new query holding plain SQL.
|
ResultQuery<Record> |
resultQuery(String sql,
QueryPart... parts)
Create a new query holding plain SQL.
|
void |
rollback()
Convenience method to access
Connection.rollback()
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
void |
rollback(Savepoint savepoint)
Convenience method to access
Connection.rollback(Savepoint)
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
SelectSelectStep |
select(Collection<? extends Field<?>> fields)
Create a new DSL select statement.
|
SelectSelectStep |
select(Field<?>... fields)
Create a new DSL select statement.
|
SelectSelectStep |
selectCount()
Create a new DSL select statement for
COUNT(*)
Example:
Factory create = new Factory();
create.selectCount()
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
|
SelectSelectStep |
selectDistinct(Collection<? extends Field<?>> fields)
Create a new DSL select statement.
|
SelectSelectStep |
selectDistinct(Field<?>... fields)
Create a new DSL select statement.
|
<R extends Record> |
selectFrom(Table<R> table)
Create a new DSL select statement
Example:
SELECT * FROM [table] WHERE [conditions] ORDER BY [ordering] LIMIT [limit clause]
|
SelectSelectStep |
selectOne()
Create a new DSL select statement for constant
1 literal
Example:
Factory create = new Factory();
create.selectOne()
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
|
SelectQuery |
selectQuery()
Create a new
SelectQuery |
<R extends Record> |
selectQuery(TableLike<R> table)
Create a new
SelectQuery |
SelectSelectStep |
selectZero()
Create a new DSL select statement for constant
0 literal
Example:
Factory create = new Factory();
create.selectZero()
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
|
void |
setAutoCommit(boolean autoCommit)
Convenience method to access
Connection.setAutoCommit(boolean)
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
void |
setHoldability(int holdability)
Convenience method to access
Connection.setHoldability(int)
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
Savepoint |
setSavepoint()
Convenience method to access
Connection.setSavepoint()
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
Savepoint |
setSavepoint(String name)
Convenience method to access
Connection.setSavepoint(String)
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
void |
setTransactionIsolation(int level)
Convenience method to access
Connection.setTransactionIsolation(int)
Use this method only if you control the JDBC Connection wrapped
by this Configuration , and if that connection manages the current
transaction. |
<R extends Record> |
truncate(Table<R> table)
Create a new DSL truncate statement.
|
<R extends Record> |
update(Table<R> table)
Create a new DSL update statement.
|
<R extends Record> |
updateQuery(Table<R> table)
Create a new
UpdateQuery |
int |
use(Schema schema)
Use a schema as the default schema of the underlying connection.
|
int |
use(String schema)
Use a schema as the default schema of the underlying connection.
|
getConnection, getData, getData, getDataSource, getDialect, getSchemaMapping, getSettings, setConnection, setData, setDataSource
String render(QueryPart part)
This is the same as calling renderContext().render(part)
part
- The QueryPart
to be renderedString renderNamedParams(QueryPart part)
This is the same as calling
renderContext().namedParams(true).render(part)
part
- The QueryPart
to be renderedString renderInlined(QueryPart part)
This is the same as calling
renderContext().inline(true).render(part)
part
- The QueryPart
to be renderedvoid attach(Attachable... attachables)
Factory
to some attachablesvoid attach(Collection<Attachable> attachables)
Factory
to some attachables@Support <R extends TableRecord<R>> LoaderOptionsStep<R> loadInto(Table<R> table)
Loader
object to load data from a CSV or XML
source@Support Query query(String sql)
Example:
String sql = "SET SCHEMA 'abc'";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQL@Support Query query(String sql, Object... bindings)
Example:
String sql = "SET SCHEMA 'abc'";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLbindings
- The bindings@Support Query query(String sql, QueryPart... parts)
Unlike query(String, Object...)
, the SQL passed to this method
should not contain any bind variables. Instead, you can pass
QueryPart
objects to the method which will be rendered at indexed
locations of your SQL string as such:
// The following query
query("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
// Will render this SQL on an Oracle database with RenderNameStyle.QUOTED:
select ?, 'test' from "DUAL"
NOTE: When inserting plain SQL into jOOQ objects, you must
guarantee syntax integrity. You may also create the possibility of
malicious SQL injection. Be sure to properly use bind variables and/or
escape literals when concatenated into SQL clauses! One way to escape
literals is to use Factory.name(String...)
and similar methods
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locations@Support Result<Record> fetch(ResultSet rs) throws DataAccessException
ResultSet
and transform it to a jOOQ
Result
. After fetching all data, the JDBC ResultSet will be
closed.
Use fetchLazy(ResultSet)
, to fetch one Record
at a
time, instead of load the entire ResultSet
into a jOOQ
Result
at once.
rs
- The JDBC ResultSet to fetch data fromDataAccessException
- if something went wrong executing the query@Support Cursor<Record> fetchLazy(ResultSet rs) throws DataAccessException
ResultSet
and transform it to a jOOQ
Result
. After fetching all data, the JDBC ResultSet will be
closed.
Use fetch(ResultSet)
, to load the entire ResultSet
into a jOOQ Result
at once.
rs
- The JDBC ResultSet to fetch data fromDataAccessException
- if something went wrong executing the queryResult<Record> fetchFromCSV(String string) throws DataAccessException
This is the same as calling fetchFromCSV(string, ',')
and
the inverse of calling Result.formatCSV()
. The first row of the
CSV data is required to hold field name information. Subsequent rows may
contain data, which is interpreted as String
. Use the various
conversion methods to retrieve other data types from the
Result
:
Result.getValues(Field, Class)
Result.getValues(int, Class)
Result.getValues(String, Class)
Result.getValues(Field, Converter)
Result.getValues(int, Converter)
Result.getValues(String, Converter)
Missing values result in null
. Empty values result in empty
Strings
string
- The CSV stringDataAccessException
- If anything went wrong parsing the CSV filefetchFromCSV(String, char)
Result<Record> fetchFromCSV(String string, char delimiter) throws DataAccessException
This is inverse of calling Result.formatCSV(char)
. The first row
of the CSV data is required to hold field name information. Subsequent
rows may contain data, which is interpreted as String
. Use the
various conversion methods to retrieve other data types from the
Result
:
Result.getValues(Field, Class)
Result.getValues(int, Class)
Result.getValues(String, Class)
Result.getValues(Field, Converter)
Result.getValues(int, Converter)
Result.getValues(String, Converter)
Missing values result in null
. Empty values result in empty
Strings
string
- The CSV stringdelimiter
- The delimiter to expect between recordsDataAccessException
- If anything went wrong parsing the CSV filefetchFromCSV(String)
@Support <R extends Record> SimpleSelectWhereStep<R> selectFrom(Table<R> table)
Example:
SELECT * FROM [table] WHERE [conditions] ORDER BY [ordering] LIMIT [limit clause]
@Support SelectSelectStep select(Field<?>... fields)
Example:
Factory create = new Factory();
create.select(field1, field2)
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2)
.execute();
@Support SelectSelectStep selectZero()
0
literal
Example:
Factory create = new Factory();
create.selectZero()
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
Factory.zero()
@Support SelectSelectStep selectOne()
1
literal
Example:
Factory create = new Factory();
create.selectOne()
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
Factory.one()
@Support SelectSelectStep selectCount()
COUNT(*)
Example:
Factory create = new Factory();
create.selectCount()
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
@Support SelectSelectStep selectDistinct(Field<?>... fields)
Example:
Factory create = new Factory();
create.selectDistinct(field1, field2)
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
@Support SelectSelectStep select(Collection<? extends Field<?>> fields)
Example:
Factory create = new Factory();
create.select(fields)
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
@Support SelectSelectStep selectDistinct(Collection<? extends Field<?>> fields)
Example:
Factory create = new Factory();
create.selectDistinct(fields)
.from(table1)
.join(table2).on(field1.equal(field2))
.where(field1.greaterThan(100))
.orderBy(field2);
@Support SelectQuery selectQuery()
SelectQuery
@Support <R extends Record> SimpleSelectQuery<R> selectQuery(TableLike<R> table)
SelectQuery
table
- The table to select data fromSelectQuery
@Support <R extends Record> InsertQuery<R> insertQuery(Table<R> into)
InsertQuery
into
- The table to insert data intoInsertQuery
@Support <R extends Record> InsertSetStep<R> insertInto(Table<R> into)
UPDATE
statement's
SET a = b
syntax.
Example:
Factory create = new Factory();
create.insertInto(table)
.set(field1, value1)
.set(field2, value2)
.newRecord()
.set(field1, value3)
.set(field2, value4)
.onDuplicateKeyUpdate()
.set(field1, value1)
.set(field2, value2)
.execute();
@Support <R extends Record> InsertValuesStep<R> insertInto(Table<R> into, Field<?>... fields)
Example:
Factory create = new Factory();
create.insertInto(table, field1, field2)
.values(value1, value2)
.values(value3, value4)
.onDuplicateKeyUpdate()
.set(field1, value1)
.set(field2, value2)
.execute();
@Support <R extends Record> InsertValuesStep<R> insertInto(Table<R> into, Collection<? extends Field<?>> fields)
Example:
Factory create = new Factory();
create.insertInto(table, field1, field2)
.values(value1, value2)
.values(value3, value4)
.onDuplicateKeyUpdate()
.set(field1, value1)
.set(field2, value2)
.execute();
@Deprecated @Support <R extends Record> Insert<R> insertInto(Table<R> into, Select<?> select)
Example:
Factory create = new Factory();
create.insertInto(table, create.select(1))
.execute();
@Support <R extends Record> UpdateQuery<R> updateQuery(Table<R> table)
UpdateQuery
table
- The table to update data intoUpdateQuery
@Support <R extends Record> UpdateSetStep<R> update(Table<R> table)
Example:
Factory create = new Factory();
create.update(table)
.set(field1, value1)
.set(field2, value2)
.where(field1.greaterThan(100))
.execute();
Note that some databases support table expressions more complex than
simple table references. In CUBRID and MySQL, for instance, you can write
create.update(t1.join(t2).on(t1.id.eq(t2.id)))
.set(t1.value, value1)
.set(t2.value, value2)
.where(t1.id.eq(10))
.execute();
@Support(value={DB2,HSQLDB,ORACLE,SQLSERVER,SYBASE}) <R extends Record> MergeUsingStep<R> mergeInto(Table<R> table)
This statement is available from DSL syntax only. It is known to be supported in some way by any of these dialects:
dialect | support type | documentation |
---|---|---|
DB2 | SQL:2008 standard and major enhancements | http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com. ibm.db2.udb.admin.doc/doc/r0010873.htm |
HSQLDB | SQL:2008 standard | http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#N129BA |
Oracle | SQL:2008 standard and minor enhancements | http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/ statements_9016.htm |
SQL Server | Similar to SQL:2008 standard with some major enhancements | http://msdn.microsoft.com/de-de/library/bb510625.aspx |
Sybase | Similar to SQL:2008 standard with some major enhancements | http://dcx.sybase.com/1100/en/dbreference_en11/merge-statement.html |
Example:
Factory create = new Factory();
create.mergeInto(table)
.using(select)
.on(condition)
.whenMatchedThenUpdate()
.set(field1, value1)
.set(field2, value2)
.whenNotMatchedThenInsert(field1, field2)
.values(value1, value2)
.execute();
Note: Using this method, you can also create an H2-specific MERGE
statement without field specification. See also
mergeInto(Table, Field...)
@Support(value={DB2,H2,HSQLDB,ORACLE,SQLSERVER,SYBASE}) <R extends Record> MergeKeyStep<R> mergeInto(Table<R> table, Field<?>... fields)
This statement is available from DSL syntax only. It is known to be supported in some way by any of these dialects:
H2 | H2 natively supports this special syntax | www.h2database.com/html/grammar.html#merge |
DB2, HSQLDB, Oracle, SQL Server, Sybase SQL Anywhere | These databases can simulate the H2-specific MERGE statement using a standard SQL MERGE statement, without restrictions | See mergeInto(Table) for the standard MERGE statement |
@Support(value={DB2,H2,HSQLDB,ORACLE,SQLSERVER,SYBASE}) <R extends Record> MergeKeyStep<R> mergeInto(Table<R> table, Collection<? extends Field<?>> fields)
mergeInto(Table, Field...)
@Support <R extends Record> DeleteQuery<R> deleteQuery(Table<R> table)
DeleteQuery
table
- The table to delete data fromDeleteQuery
@Support <R extends Record> DeleteWhereStep<R> delete(Table<R> table)
Example:
Factory create = new Factory();
create.delete(table)
.where(field1.greaterThan(100))
.execute();
@Support Batch batch(Query... queries)
This essentially runs the following logic:
Statement s = connection.createStatement();
for (Query query : queries) {
s.addBatch(query.getSQL(true));
}
s.execute();
Statement.executeBatch()
@Support Batch batch(Collection<? extends Query> queries)
This essentially runs the following logic:
Statement s = connection.createStatement();
for (Query query : queries) {
s.addBatch(query.getSQL(true));
}
s.execute();
Statement.executeBatch()
@Support BatchBindStep batch(Query query)
When running
create.batch(query)
.bind(valueA1, valueA2)
.bind(valueB1, valueB2)
.execute();
This essentially runs the following logic:
Statement s = connection.prepareStatement(query.getSQL(false));
for (Object[] bindValues : allBindValues) {
for (Object bindValue : bindValues) {
s.setXXX(bindValue);
}
s.addBatch();
}
s.execute();
Note: bind values will be inlined to a static batch query as in
batch(Query...)
, if you choose to execute queries with
Settings.getStatementType()
== StatementType.STATIC_STATEMENT
Statement.executeBatch()
Batch batchStore(UpdatableRecord<?>... records)
INSERT
and UPDATE
queries in
batch mode (with bind values).
This batch operation can be executed in two modes:
Settings.getStatementType()
== StatementType.PREPARED_STATEMENT
(the default)[number of distinct rendered SQL statements]
. In the worst
case, this corresponds to the number of total records.
The record type order is preserved in the way they are passed to this
method. This is an example of how statements will be ordered:
The above results in
// Let's assume, odd numbers result in INSERTs and even numbers in UPDATES
// Let's also assume a[n] are all of the same type, just as b[n], c[n]...
int[] result = create.batchStore(a1, a2, a3, b1, a4, c1, b3, a5)
.execute();
result.length == 8
and
the following 4 separate batch statements:
Settings.getStatementType()
== StatementType.STATIC_STATEMENT
Statement.executeBatch()
Batch batchStore(Collection<? extends UpdatableRecord<?>> records)
INSERT
and UPDATE
queries in
batch mode (with bind values).@Support <R extends Record> Truncate<R> truncate(Table<R> table)
Example:
Factory create = new Factory();
create.truncate(table)
.execute();
Most dialects implement the TRUNCATE
statement. If it is not
supported, it is simulated using an equivalent DELETE
statement. This is particularly true for these dialects:
Note, this statement is only supported in DSL mode. Immediate execution is omitted for future extensibility of this command.
@Support(value={ASE,CUBRID,DERBY,H2,HSQLDB,INGRES,MYSQL,SQLITE,SQLSERVER,SYBASE}) BigInteger lastID() throws DataAccessException
Note, there are some restrictions to the following dialects:
SQLDialect.DB2
doesn't support thisSQLDialect.ORACLE
doesn't support thisSQLDialect.POSTGRES
doesn't support thisSQLDialect.SQLITE
supports this, but its support is poorly
documented.null
in some
dialects, if no such number is available.DataAccessException
- if something went wrong executing the query@Support(value={CUBRID,DB2,DERBY,FIREBIRD,H2,HSQLDB,INGRES,ORACLE,POSTGRES,SYBASE}) <T extends Number> T nextval(Sequence<T> sequence) throws DataAccessException
Factory
's underlying JDBC Connection
DataAccessException
- if something went wrong executing the query@Support(value={CUBRID,DB2,FIREBIRD,H2,INGRES,ORACLE,POSTGRES,SYBASE}) <T extends Number> T currval(Sequence<T> sequence) throws DataAccessException
Factory
's underlying JDBC Connection
DataAccessException
- if something went wrong executing the query@Support(value={DB2,DERBY,H2,HSQLDB,MYSQL,SYBASE,ORACLE,POSTGRES,SYBASE}) int use(Schema schema) throws DataAccessException
This has two effects.
USE [schema]
statement is executed on those RDBMS
that support thisSchema
is used as the default schema resulting
in omitting that schema in rendered SQL.
The USE [schema]
statement translates to the various
dialects as follows:
Dialect | Command |
---|---|
DB2 | SET SCHEMA [schema] |
Derby: | SET SCHEMA [schema] |
H2: | SET SCHEMA [schema] |
HSQLDB: | SET SCHEMA [schema] |
MySQL: | USE [schema] |
Oracle: | ALTER SESSION SET CURRENT_SCHEMA = [schema] |
Postgres: | SET SEARCH_PATH = [schema] |
Sybase: | USE [schema] |
DataAccessException
- if something went wrong executing the query@Support(value={DB2,DERBY,H2,HSQLDB,MYSQL,SYBASE,ORACLE,POSTGRES,SYBASE}) int use(String schema) throws DataAccessException
DataAccessException
- if something went wrong executing the queryuse(Schema)
<R extends UDTRecord<R>> R newRecord(UDT<R> type)
UDTRecord
.
The resulting record is attached to this Configuration
by
default. Use Settings.isAttachRecords()
to override this
behaviour.
R
- The generic record typetype
- The UDT describing records of type <R><R extends TableRecord<R>> R newRecord(Table<R> table)
Record
that can be inserted into the corresponding
table.
The resulting record is attached to this Configuration
by
default. Use Settings.isAttachRecords()
to override this
behaviour.
R
- The generic record typetable
- The table holding records of type <R><R extends TableRecord<R>> R newRecord(Table<R> table, Object source) throws MappingException
Record
that can be inserted into the
corresponding table.
This performs roughly the inverse operation of Record.into(Class)
The resulting record will have its internal "changed" flags set to true
for all values. This means that UpdatableRecord.store()
will
perform an INSERT
statement. If you wish to store the record
using an UPDATE
statement, use
executeUpdate(UpdatableRecord)
instead.
The resulting record is attached to this Configuration
by
default. Use Settings.isAttachRecords()
to override this
behaviour.
R
- The generic record typetable
- The table holding records of type <R>source
- The source to be used to fill the new recordMappingException
- wrapping any reflection or data type conversion
exception that might have occurred while mapping recordsRecord.from(Object)
,
Record.into(Class)
@Support <R extends Record> Result<R> fetch(Table<R> table) throws DataAccessException
SELECT * FROM [table]
The result and its contained records are attached to this
Configuration
by default. Use Settings.isAttachRecords()
to override this behaviour.
DataAccessException
- if something went wrong executing the query@Support <R extends Record> Result<R> fetch(Table<R> table, Condition condition) throws DataAccessException
SELECT * FROM [table] WHERE [condition]
The result and its contained records are attached to this
Configuration
by default. Use Settings.isAttachRecords()
to override this behaviour.
DataAccessException
- if something went wrong executing the query@Support <R extends Record> R fetchOne(Table<R> table) throws DataAccessException
SELECT * FROM [table]
The resulting record is attached to this Configuration
by
default. Use Settings.isAttachRecords()
to override this
behaviour.
null
if no record was returnedDataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record@Support <R extends Record> R fetchOne(Table<R> table, Condition condition) throws DataAccessException
SELECT * FROM [table] WHERE [condition]
The resulting record is attached to this Configuration
by
default. Use Settings.isAttachRecords()
to override this
behaviour.
null
if no record was returnedDataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record@Support <R extends Record> R fetchAny(Table<R> table) throws DataAccessException
SELECT * FROM [table] LIMIT 1
The resulting record is attached to this Configuration
by
default. Use Settings.isAttachRecords()
to override this
behaviour.
null
if no record was returnedDataAccessException
- if something went wrong executing the query@Deprecated @Support <R extends TableRecord<R>> int executeInsert(Table<R> table, R record) throws DataAccessException
executeInsert(TableRecord)
insteadINSERT INTO [table] ... VALUES [record]
DataAccessException
- if something went wrong executing the query@Support <R extends TableRecord<R>> int executeInsert(R record) throws DataAccessException
This executes something like the following statement:
INSERT INTO [table] ... VALUES [record]
Unlike UpdatableRecord.store()
, this does not change any of the
argument record
's internal "changed" flags, such that a
subsequent call to UpdatableRecord.store()
might lead to another
INSERT
statement being executed.
DataAccessException
- if something went wrong executing the query@Deprecated @Support <R extends TableRecord<R>> int executeUpdate(Table<R> table, R record) throws DataAccessException
UPDATE [table] SET [modified values in record]
DataAccessException
- if something went wrong executing the query@Deprecated @Support <R extends TableRecord<R>,T> int executeUpdate(Table<R> table, R record, Condition condition) throws DataAccessException
executeUpdate(TableRecord, Condition)
insteadUPDATE [table] SET [modified values in record] WHERE [condition]
DataAccessException
- if something went wrong executing the query@Deprecated @Support <R extends TableRecord<R>> int executeUpdateOne(Table<R> table, R record) throws DataAccessException
UPDATE [table] SET [modified values in record]
DataAccessException
- if something went wrong executing the query@Deprecated @Support <R extends TableRecord<R>,T> int executeUpdateOne(Table<R> table, R record, Condition condition) throws DataAccessException
executeUpdate(TableRecord, Condition)
has changed.
This method here is no longer necessary.UPDATE [table] SET [modified values in record] WHERE [condition]
DataAccessException
- if something went wrong executing the query@Support <R extends UpdatableRecord<R>> int executeUpdate(R record) throws DataAccessException
UPDATE [table] SET [modified values in record] WHERE [record is supplied record]
DataAccessException
- if something went wrong executing the query@Support <R extends TableRecord<R>,T> int executeUpdate(R record, Condition condition) throws DataAccessException
UPDATE [table] SET [modified values in record] WHERE [condition]
DataAccessException
- if something went wrong executing the query@Support <R extends UpdatableRecord<R>> int executeDelete(R record) throws DataAccessException
DELETE FROM [table] WHERE [record is supplied record]
DataAccessException
- if something went wrong executing the query@Support <R extends TableRecord<R>,T> int executeDelete(R record, Condition condition) throws DataAccessException
DELETE FROM [table] WHERE [condition]
DataAccessException
- if something went wrong executing the query@Deprecated @Support <R extends TableRecord<R>> int executeDelete(Table<R> table) throws DataAccessException
executeDelete(TableRecord, Condition)
has changed.
This method here is no longer necessary.DELETE FROM [table]
DataAccessException
- if something went wrong executing the query@Deprecated @Support <R extends TableRecord<R>,T> int executeDelete(Table<R> table, Condition condition) throws DataAccessException
executeDelete(TableRecord, Condition)
has changed.
This method here is no longer necessary.DELETE FROM [table] WHERE [condition]
DataAccessException
- if something went wrong executing the query.@Deprecated @Support <R extends TableRecord<R>> int executeDeleteOne(Table<R> table) throws DataAccessException
executeDelete(TableRecord, Condition)
has changed.
This method here is no longer necessary.DELETE FROM [table]
DataAccessException
- if something went wrong executing the query@Deprecated @Support <R extends TableRecord<R>,T> int executeDeleteOne(Table<R> table, Condition condition) throws DataAccessException
executeDelete(TableRecord, Condition)
has changed.
This method here is no longer necessary.DELETE FROM [table] WHERE [condition]
DataAccessException
- if something went wrong executing the query@Support Result<Record> fetch(String sql) throws DataAccessException
Example (Postgres):
Example
(SQLite):
String sql = "FETCH ALL IN \"
String sql = "pragma table_info('my_table')";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLnull
, even if the database returns no
ResultSet
DataAccessException
- if something went wrong executing the query@Support Result<Record> fetch(String sql, Object... bindings) throws DataAccessException
Example (Postgres):
Example
(SQLite):
String sql = "FETCH ALL IN \"
String sql = "pragma table_info('my_table')";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLbindings
- The bindingsnull
, even if the database returns no
ResultSet
DataAccessException
- if something went wrong executing the query@Support Result<Record> fetch(String sql, QueryPart... parts) throws DataAccessException
Unlike fetch(String, Object...)
, the SQL passed to this method
should not contain any bind variables. Instead, you can pass
QueryPart
objects to the method which will be rendered at indexed
locations of your SQL string as such:
// The following query
fetch("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
// Will execute this SQL on an Oracle database with RenderNameStyle.QUOTED:
select ?, 'test' from "DUAL"
NOTE: When inserting plain SQL into jOOQ objects, you must
guarantee syntax integrity. You may also create the possibility of
malicious SQL injection. Be sure to properly use bind variables and/or
escape literals when concatenated into SQL clauses! One way to escape
literals is to use Factory.name(String...)
and similar methods
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locationsDataAccessException
- if something went wrong executing the query@Support Cursor<Record> fetchLazy(String sql) 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.
Example (Postgres):
Example
(SQLite):
String sql = "FETCH ALL IN \"
String sql = "pragma table_info('my_table')";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLnull
, even if the database returns no
ResultSet
DataAccessException
- if something went wrong executing the query@Support Cursor<Record> fetchLazy(String sql, QueryPart... parts) 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.
Unlike fetchLazy(String, Object...)
, the SQL passed to this
method should not contain any bind variables. Instead, you can pass
QueryPart
objects to the method which will be rendered at indexed
locations of your SQL string as such:
// The following query
fetchLazy("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
// Will execute this SQL on an Oracle database with RenderNameStyle.QUOTED:
select ?, 'test' from "DUAL"
NOTE: When inserting plain SQL into jOOQ objects, you must
guarantee syntax integrity. You may also create the possibility of
malicious SQL injection. Be sure to properly use bind variables and/or
escape literals when concatenated into SQL clauses! One way to escape
literals is to use Factory.name(String...)
and similar methods
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locationsDataAccessException
- if something went wrong executing the query@Support Cursor<Record> fetchLazy(String sql, Object... bindings) 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.
Example (Postgres):
Example
(SQLite):
String sql = "FETCH ALL IN \"
String sql = "pragma table_info('my_table')";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLbindings
- The bindingsnull
, even if the database returns no
ResultSet
DataAccessException
- if something went wrong executing the query@Support List<Result<Record>> fetchMany(String sql) throws DataAccessException
Example (Sybase ASE):
String sql = "sp_help 'my_table'";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLnull
, even if the database returns no
ResultSet
DataAccessException
- if something went wrong executing the query@Support List<Result<Record>> fetchMany(String sql, Object... bindings) throws DataAccessException
Example (Sybase ASE):
String sql = "sp_help 'my_table'";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLbindings
- The bindingsnull
, even if the database returns no
ResultSet
DataAccessException
- if something went wrong executing the query@Support List<Result<Record>> fetchMany(String sql, QueryPart... parts) throws DataAccessException
Unlike fetchMany(String, Object...)
, the SQL passed to this
method should not contain any bind variables. Instead, you can pass
QueryPart
objects to the method which will be rendered at indexed
locations of your SQL string as such:
// The following query
fetchMany("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
// Will execute this SQL on an Oracle database with RenderNameStyle.QUOTED:
select ?, 'test' from "DUAL"
NOTE: When inserting plain SQL into jOOQ objects, you must
guarantee syntax integrity. You may also create the possibility of
malicious SQL injection. Be sure to properly use bind variables and/or
escape literals when concatenated into SQL clauses! One way to escape
literals is to use Factory.name(String...)
and similar methods
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locationsDataAccessException
- if something went wrong executing the query@Support Record fetchOne(String sql) throws DataAccessException
Example (Postgres):
Example
(SQLite):
String sql = "FETCH ALL IN \"
String sql = "pragma table_info('my_table')";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLnull
, even if the database returns no
ResultSet
DataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record@Support Record fetchOne(String sql, Object... bindings) throws DataAccessException
Example (Postgres):
Example
(SQLite):
String sql = "FETCH ALL IN \"
String sql = "pragma table_info('my_table')";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLbindings
- The bindingsnull
if the database returned no recordsDataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record@Support Record fetchOne(String sql, QueryPart... parts) throws DataAccessException
Unlike fetchOne(String, Object...)
, the SQL passed to this
method should not contain any bind variables. Instead, you can pass
QueryPart
objects to the method which will be rendered at indexed
locations of your SQL string as such:
// The following query
fetchOne("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
// Will execute this SQL on an Oracle database with RenderNameStyle.QUOTED:
select ?, 'test' from "DUAL"
NOTE: When inserting plain SQL into jOOQ objects, you must
guarantee syntax integrity. You may also create the possibility of
malicious SQL injection. Be sure to properly use bind variables and/or
escape literals when concatenated into SQL clauses! One way to escape
literals is to use Factory.name(String...)
and similar methods
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locationsnull
if the database returned no recordsDataAccessException
- if something went wrong executing the queryInvalidResultException
- if the query returned more than one record@Support int execute(String sql) throws DataAccessException
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLDataAccessException
- if something went wrong executing the query@Support int execute(String sql, Object... bindings) throws DataAccessException
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLbindings
- The bindingsDataAccessException
- if something went wrong executing the query@Support int execute(String sql, QueryPart... parts) throws DataAccessException
Unlike execute(String, Object...)
, the SQL passed to this method
should not contain any bind variables. Instead, you can pass
QueryPart
objects to the method which will be rendered at indexed
locations of your SQL string as such:
// The following query
execute("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
// Will execute this SQL on an Oracle database with RenderNameStyle.QUOTED:
select ?, 'test' from "DUAL"
NOTE: When inserting plain SQL into jOOQ objects, you must
guarantee syntax integrity. You may also create the possibility of
malicious SQL injection. Be sure to properly use bind variables and/or
escape literals when concatenated into SQL clauses! One way to escape
literals is to use Factory.name(String...)
and similar methods
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locationsDataAccessException
- if something went wrong executing the query@Support ResultQuery<Record> resultQuery(String sql) throws DataAccessException
Use this method, when you want to take advantage of the many ways to
fetch results in jOOQ, using ResultQuery
. Some examples:
ResultQuery.fetchLazy() |
Open a cursor and fetch records one by one |
ResultQuery.fetchInto(Class) |
Fetch records into a custom POJO (optionally annotated with JPA annotations) |
ResultQuery.fetchInto(RecordHandler) |
Fetch records into a custom callback (similar to Spring's RowMapper) |
ResultQuery.fetchLater() |
Fetch records of a long-running query asynchronously |
Example (Postgres):
Example
(SQLite):
String sql = "FETCH ALL IN \"
String sql = "pragma table_info('my_table')";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLDataAccessException
- if something went wrong executing the query@Support ResultQuery<Record> resultQuery(String sql, Object... bindings)
Use this method, when you want to take advantage of the many ways to
fetch results in jOOQ, using ResultQuery
. Some examples:
ResultQuery.fetchLazy() |
Open a cursor and fetch records one by one |
ResultQuery.fetchInto(Class) |
Fetch records into a custom POJO (optionally annotated with JPA annotations) |
ResultQuery.fetchInto(RecordHandler) |
Fetch records into a custom callback (similar to Spring's RowMapper) |
ResultQuery.fetchLater() |
Fetch records of a long-running query asynchronously |
Example (Postgres):
Example
(SQLite):
String sql = "FETCH ALL IN \"
String sql = "pragma table_info('my_table')";
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
sql
- The SQLbindings
- The bindings@Support ResultQuery<Record> resultQuery(String sql, QueryPart... parts)
Unlike resultQuery(String, Object...)
, the SQL passed to this
method should not contain any bind variables. Instead, you can pass
QueryPart
objects to the method which will be rendered at indexed
locations of your SQL string as such:
// The following query
resultQuery("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
// Will render this SQL on an Oracle database with RenderNameStyle.QUOTED:
select ?, 'test' from "DUAL"
NOTE: When inserting plain SQL into jOOQ objects, you must
guarantee syntax integrity. You may also create the possibility of
malicious SQL injection. Be sure to properly use bind variables and/or
escape literals when concatenated into SQL clauses! One way to escape
literals is to use Factory.name(String...)
and similar methods
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locationsint getTransactionIsolation() throws DataAccessException
Connection.getTransactionIsolation()
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
void setTransactionIsolation(int level) throws DataAccessException
Connection.setTransactionIsolation(int)
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
int getHoldability() throws DataAccessException
Connection.getHoldability()
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
void setHoldability(int holdability) throws DataAccessException
Connection.setHoldability(int)
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
boolean getAutoCommit() throws DataAccessException
Connection.getAutoCommit()
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
void setAutoCommit(boolean autoCommit) throws DataAccessException
Connection.setAutoCommit(boolean)
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
void releaseSavepoint(Savepoint savepoint) throws DataAccessException
Connection.releaseSavepoint(Savepoint)
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
Savepoint setSavepoint(String name) throws DataAccessException
Connection.setSavepoint(String)
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
Savepoint setSavepoint() throws DataAccessException
Connection.setSavepoint()
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
void rollback(Savepoint savepoint) throws DataAccessException
Connection.rollback(Savepoint)
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
void rollback() throws DataAccessException
Connection.rollback()
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
void commit() throws DataAccessException
Connection.commit()
Use this method only if you control the JDBC Connection
wrapped
by this Configuration
, and if that connection manages the current
transaction. If your transaction is operated on a distributed
javax.transaction.UserTransaction
, for instance, this method
will not work.
Copyright © 2013. All Rights Reserved.