public class DbQuery
extends java.lang.Object
Statement
and all its operations.
It may be:
DbSession
;DbThreadSession
i.e. ThreadDbSessionHolder
.Query life-cycle states:
Modifier and Type | Class and Description |
---|---|
static class |
jodd.db.DbQueryBase.State
Query states.
|
Modifier and Type | Field and Description |
---|---|
protected boolean |
autoClose |
protected java.sql.CallableStatement |
callableStatement |
static int |
CLOSE_CURSORS_AT_COMMIT |
static int |
CONCUR_READ_ONLY |
static int |
CONCUR_UPDATABLE |
protected int |
concurrencyType |
protected java.sql.Connection |
connection |
protected DbManager |
dbManager |
protected boolean |
debug |
static int |
DEFAULT_HOLDABILITY
Default holdability.
|
protected long |
elapsed |
protected int |
fetchSize |
protected boolean |
forcePreparedStatement
If set to
true all created statements will be prepared. |
protected java.lang.String[] |
generatedColumns |
static int |
HOLD_CURSORS_OVER_COMMIT |
protected int |
holdability |
protected int |
maxRows |
protected java.sql.PreparedStatement |
preparedStatement |
protected jodd.db.DbQueryParser |
query |
protected jodd.db.DbQueryBase.State |
queryState |
protected java.util.Set<java.sql.ResultSet> |
resultSets |
protected DbSession |
session |
protected java.lang.String |
sqlString |
protected long |
start |
protected java.sql.Statement |
statement |
protected static int |
totalOpenResultSetCount |
protected int |
type |
static int |
TYPE_FORWARD_ONLY |
static int |
TYPE_SCROLL_INSENSITIVE |
static int |
TYPE_SCROLL_SENSITIVE |
Constructor and Description |
---|
DbQuery(java.sql.Connection conn,
java.lang.String sqlString)
Creates new query.
|
DbQuery(DbSession session,
java.lang.String sqlString)
Creates a new query from
DbSession . |
DbQuery(java.lang.String sqlString)
Creates a new query using default session provider.
|
Modifier and Type | Method and Description |
---|---|
DbQuery |
autoClose()
Defines that query should be automatically closed immediately after using.
|
protected void |
checkCreated()
Checks if query is created (and not yet initialized or closed) and throws an exception if it is not.
|
protected void |
checkInitialized()
Checks if query is initialized and throws an exception if it is not.
|
protected void |
checkNotClosed()
Checks if query is not closed and throws an exception if it is.
|
void |
clearParameters()
Clears the current parameter values immediately.
|
void |
close()
Closes the query and all created results sets and detaches itself from the session.
|
void |
closeAllResultSets()
Closes all result sets created by this query.
|
void |
closeCursorsAtCommit() |
protected java.sql.SQLException |
closeQuery()
Closes all assigned result sets and then closes the query.
|
void |
closeResultSet(java.sql.ResultSet rs)
Closes single result set that was created by this query.
|
void |
concurReadOnly() |
void |
concurUpdatable() |
java.sql.ResultSet |
execute()
Executes the query.
|
DbCallResult |
executeCall() |
long |
executeCount()
Special execute() for 'select count(*)' queries.
|
protected long |
executeCount(boolean close)
Executes count queries and optionally closes query afterwards.
|
int |
executeUpdate()
Executes UPDATE, INSERT or DELETE queries.
|
protected int |
executeUpdate(boolean closeQuery)
Executes UPDATE, INSERT or DELETE queries and optionally closes the query.
|
<T> T |
find(QueryMapper<T> queryMapper)
Executes the query and maps single result row. |
void |
forcePreparedStatement()
Forces creation of prepared statements.
|
int |
getConcurrencyType() |
long |
getExecutionTime()
Returns query execution elapsed time in milliseconds.
|
int |
getFetchSize()
Returns fetch size.
|
java.lang.String[] |
getGeneratedColumnNames()
Returns generated column names.
|
java.sql.ResultSet |
getGeneratedColumns()
Returns generated columns.
|
long |
getGeneratedKey()
Returns generated key i.e. first generated column as
long . |
int |
getHoldability() |
int |
getMaxRows()
Returns max rows.
|
int |
getOpenResultSetCount()
Returns number of created result sets that are still not explicitly closed.
|
jodd.db.DbQueryBase.State |
getQueryState()
Returns query state.
|
java.lang.String |
getQueryString()
Returns query SQL string.
|
DbSession |
getSession()
Returns used
DbSession . |
static int |
getTotalOpenResultSetCount()
Returns total number of open result sets.
|
int |
getType() |
void |
holdCursorsOverCommit() |
void |
init()
Initializes the query if not already initialized.
|
protected void |
initializeJdbc()
Performs JDBC initialization of the query.
|
protected void |
initSession(DbSession session)
Initializes session.
|
boolean |
isActive()
Returns
true if query is active: created and possibly initialized. |
boolean |
isClosed()
Returns
true if query is closed. |
boolean |
isInDebugMode() |
boolean |
isInitialized()
Returns
true if query is initialized. |
<T> java.util.List<T> |
list(QueryMapper<T> queryMapper)
|
<T> java.util.Set<T> |
listSet(QueryMapper<T> queryMapper)
Executes the query, iterates all rows and
maps them. |
void |
outBoolean(int index) |
void |
outBoolean(java.lang.String param) |
void |
outByte(int index) |
void |
outByte(java.lang.String param) |
void |
outDouble(int index) |
void |
outDouble(java.lang.String param) |
void |
outFloat(int index) |
void |
outFloat(java.lang.String param) |
void |
outInteger(int index) |
void |
outInteger(java.lang.String param) |
void |
outString(int index) |
void |
outString(java.lang.String param) |
protected void |
prepareQuery()
Prepares the query just after the initialization.
|
protected java.lang.String |
preprocessSql(java.lang.String sqlString)
Pre-process SQL before using it.
|
void |
resetGeneratedColumns()
Resets creating generated columns.
|
protected void |
saveResultSet(java.sql.ResultSet rs)
Stores result set.
|
void |
setArray(int index,
java.sql.Array value) |
void |
setArray(java.lang.String param,
java.sql.Array value) |
void |
setAsciiStream(int index,
java.io.InputStream stream) |
void |
setAsciiStream(int index,
java.io.InputStream stream,
int length) |
void |
setAsciiStream(java.lang.String param,
java.io.InputStream stream) |
void |
setAsciiStream(java.lang.String param,
java.io.InputStream stream,
int length) |
void |
setBatch(java.lang.String name,
int[] array,
int startingIndex)
Sets batch parameters with given array of values.
|
void |
setBatch(java.lang.String name,
long[] array,
int startingIndex)
Sets batch parameters with given array of values.
|
void |
setBatch(java.lang.String name,
java.lang.Object[] array,
int startingIndex)
Sets batch parameters with given array of values.
|
void |
setBean(java.lang.String beanName,
java.lang.Object bean)
Sets bean parameters from bean.
|
void |
setBigDecimal(int index,
java.math.BigDecimal value) |
void |
setBigDecimal(java.lang.String param,
java.math.BigDecimal value) |
void |
setBigInteger(int index,
java.math.BigInteger value) |
void |
setBigInteger(java.lang.String param,
java.math.BigInteger value) |
void |
setBlob(int index,
java.sql.Blob value) |
void |
setBlob(java.lang.String param,
java.sql.Blob value) |
void |
setBoolean(int index,
boolean value) |
void |
setBoolean(int index,
java.lang.Boolean value) |
void |
setBoolean(java.lang.String param,
boolean value) |
void |
setBoolean(java.lang.String param,
java.lang.Boolean value) |
void |
setByte(int index,
byte value) |
void |
setByte(int index,
java.lang.Number value) |
void |
setByte(java.lang.String param,
byte value) |
void |
setByte(java.lang.String param,
java.lang.Number value) |
void |
setBytes(int index,
byte[] value) |
void |
setBytes(java.lang.String param,
byte[] value) |
void |
setCharacterStream(int index,
java.io.Reader reader,
int length) |
void |
setCharacterStream(java.lang.String param,
java.io.Reader reader,
int length) |
void |
setClob(int index,
java.sql.Clob value) |
void |
setClob(java.lang.String param,
java.sql.Clob value) |
void |
setConcurrencyType(int concurrencyType) |
void |
setDate(int index,
java.sql.Date value) |
void |
setDate(java.lang.String param,
java.sql.Date value) |
void |
setDebug(boolean debug) |
void |
setDebugMode() |
void |
setDouble(int index,
double value) |
void |
setDouble(int index,
java.lang.Number value) |
void |
setDouble(java.lang.String param,
double value) |
void |
setDouble(java.lang.String param,
java.lang.Number value) |
void |
setFetchSize(int rows)
Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when
more rows are needed.
|
void |
setFloat(int index,
float value) |
void |
setFloat(int index,
java.lang.Number value) |
void |
setFloat(java.lang.String param,
float value) |
void |
setFloat(java.lang.String param,
java.lang.Number value) |
void |
setGeneratedColumns(java.lang.String... columns)
Specifies columns which values will be generated by database.
|
void |
setGeneratedKey()
Specifies that database will generate some columns values,
usually the single id.
|
void |
setHoldability(int holdability) |
void |
setInteger(int index,
int value) |
void |
setInteger(int index,
java.lang.Number value) |
void |
setInteger(java.lang.String param,
int value) |
void |
setInteger(java.lang.String param,
java.lang.Number value) |
void |
setLong(int index,
long value) |
void |
setLong(int index,
java.lang.Number value) |
void |
setLong(java.lang.String param,
long value) |
void |
setLong(java.lang.String param,
java.lang.Number value) |
void |
setMap(java.util.Map parameters)
Sets properties from the map.
|
void |
setMaxRows(int maxRows)
Sets the limit for the maximum number of rows that any ResultSet object can contain to the given number.
|
void |
setNull(int index,
int type) |
void |
setNull(int index,
int type,
java.lang.String typeName) |
void |
setNull(java.lang.String param,
int type) |
void |
setNull(java.lang.String param,
int value,
java.lang.String typeName) |
void |
setObject(int index,
java.lang.Object value) |
void |
setObject(int index,
java.lang.Object value,
java.lang.Class<? extends SqlType> sqlTypeClass,
int dbSqlType)
Sets object parameter in an advanced way.
|
void |
setObject(int index,
java.lang.Object object,
int targetSqlType)
Sets the value of the designated parameter with the given object.
|
void |
setObject(java.lang.String param,
java.lang.Object value) |
void |
setObject(java.lang.String param,
java.lang.Object value,
java.lang.Class<? extends SqlType> sqlTypeClass,
int dbSqlType) |
void |
setObject(java.lang.String param,
java.lang.Object object,
int targetSqlType)
Sets the value of the designated parameter with the given object.
|
void |
setObjects(java.lang.Object... objects)
Sets an array of objects parameters in given order.
|
void |
setObjects(java.lang.String[] names,
java.lang.Object[] values)
Sets sql parameters from two arrays: names and values.
|
void |
setRef(int index,
java.sql.Ref value) |
void |
setRef(java.lang.String param,
java.sql.Ref value) |
void |
setShort(int index,
java.lang.Number value) |
void |
setShort(int index,
short value) |
void |
setShort(java.lang.String param,
java.lang.Number value) |
void |
setShort(java.lang.String param,
short value) |
void |
setString(int index,
java.lang.String value) |
void |
setString(java.lang.String param,
java.lang.String value) |
void |
setTime(int index,
java.sql.Time value) |
void |
setTime(java.lang.String param,
java.sql.Time value) |
void |
setTimestamp(int index,
java.sql.Timestamp value) |
void |
setTimestamp(java.lang.String param,
java.sql.Timestamp value) |
void |
setType(int type) |
void |
setURL(int index,
java.net.URL value) |
void |
setURL(java.lang.String param,
java.net.URL value) |
java.lang.String |
toString() |
void |
typeForwardOnly() |
void |
typeScrollInsensitive() |
void |
typeScrollSensitive() |
protected final DbManager dbManager
protected jodd.db.DbQueryBase.State queryState
protected java.sql.Connection connection
protected DbSession session
protected java.lang.String sqlString
protected java.sql.Statement statement
protected java.sql.PreparedStatement preparedStatement
protected java.sql.CallableStatement callableStatement
protected java.util.Set<java.sql.ResultSet> resultSets
protected jodd.db.DbQueryParser query
protected boolean forcePreparedStatement
true
all created statements will be prepared.protected boolean autoClose
public static final int TYPE_FORWARD_ONLY
ResultSet.TYPE_FORWARD_ONLY
,
Constant Field Valuespublic static final int TYPE_SCROLL_SENSITIVE
ResultSet.TYPE_SCROLL_SENSITIVE
,
Constant Field Valuespublic static final int TYPE_SCROLL_INSENSITIVE
ResultSet.TYPE_SCROLL_INSENSITIVE
,
Constant Field Valuesprotected int type
public static final int CONCUR_READ_ONLY
ResultSet.CONCUR_READ_ONLY
,
Constant Field Valuespublic static final int CONCUR_UPDATABLE
ResultSet.CONCUR_UPDATABLE
,
Constant Field Valuesprotected int concurrencyType
public static final int DEFAULT_HOLDABILITY
public static final int CLOSE_CURSORS_AT_COMMIT
ResultSet.CLOSE_CURSORS_AT_COMMIT
,
Constant Field Valuespublic static final int HOLD_CURSORS_OVER_COMMIT
ResultSet.HOLD_CURSORS_OVER_COMMIT
,
Constant Field Valuesprotected int holdability
protected boolean debug
protected java.lang.String[] generatedColumns
protected int fetchSize
protected int maxRows
protected long start
protected long elapsed
protected static int totalOpenResultSetCount
public DbQuery(java.sql.Connection conn, java.lang.String sqlString)
public DbQuery(DbSession session, java.lang.String sqlString)
DbSession
.public DbQuery(java.lang.String sqlString)
protected java.lang.String preprocessSql(java.lang.String sqlString)
public void clearParameters()
In general, parameter values remain in force for repeated use of a
statement. Setting a parameter value automatically clears its
previous value. However, in some cases it is useful to immediately
release the resources used by the current parameter values; this can
be done by calling the method clearParameters
.
public void setNull(int index, int type)
public void setNull(java.lang.String param, int type)
public void setNull(int index, int type, java.lang.String typeName)
public void setNull(java.lang.String param, int value, java.lang.String typeName)
public void setInteger(int index, int value)
public void setInteger(java.lang.String param, int value)
public void outInteger(int index)
public void outInteger(java.lang.String param)
public void setInteger(int index, java.lang.Number value)
public void setInteger(java.lang.String param, java.lang.Number value)
public void setBoolean(int index, boolean value)
public void setBoolean(java.lang.String param, boolean value)
public void outBoolean(int index)
public void outBoolean(java.lang.String param)
public void setBoolean(int index, java.lang.Boolean value)
public void setBoolean(java.lang.String param, java.lang.Boolean value)
public void setLong(int index, long value)
public void setLong(java.lang.String param, long value)
public void setLong(int index, java.lang.Number value)
public void setLong(java.lang.String param, java.lang.Number value)
public void setByte(int index, byte value)
public void setByte(java.lang.String param, byte value)
public void outByte(int index)
public void outByte(java.lang.String param)
public void setByte(int index, java.lang.Number value)
public void setByte(java.lang.String param, java.lang.Number value)
public void setBytes(int index, byte[] value)
public void setBytes(java.lang.String param, byte[] value)
public void setDouble(int index, double value)
public void setDouble(java.lang.String param, double value)
public void outDouble(int index)
public void outDouble(java.lang.String param)
public void setDouble(int index, java.lang.Number value)
public void setDouble(java.lang.String param, java.lang.Number value)
public void setFloat(int index, float value)
public void setFloat(java.lang.String param, float value)
public void outFloat(int index)
public void outFloat(java.lang.String param)
public void setFloat(int index, java.lang.Number value)
public void setFloat(java.lang.String param, java.lang.Number value)
public void setShort(int index, short value)
public void setShort(java.lang.String param, short value)
public void setShort(int index, java.lang.Number value)
public void setShort(java.lang.String param, java.lang.Number value)
public void setString(int index, java.lang.String value)
public void setString(java.lang.String param, java.lang.String value)
public void outString(int index)
public void outString(java.lang.String param)
public void setDate(int index, java.sql.Date value)
public void setDate(java.lang.String param, java.sql.Date value)
public void setTime(int index, java.sql.Time value)
public void setTime(java.lang.String param, java.sql.Time value)
public void setTimestamp(int index, java.sql.Timestamp value)
public void setTimestamp(java.lang.String param, java.sql.Timestamp value)
public void setBigDecimal(int index, java.math.BigDecimal value)
public void setBigDecimal(java.lang.String param, java.math.BigDecimal value)
public void setBigInteger(int index, java.math.BigInteger value)
public void setBigInteger(java.lang.String param, java.math.BigInteger value)
public void setURL(int index, java.net.URL value)
public void setURL(java.lang.String param, java.net.URL value)
public void setBlob(int index, java.sql.Blob value)
public void setBlob(java.lang.String param, java.sql.Blob value)
public void setClob(int index, java.sql.Clob value)
public void setClob(java.lang.String param, java.sql.Clob value)
public void setArray(int index, java.sql.Array value)
public void setArray(java.lang.String param, java.sql.Array value)
public void setRef(int index, java.sql.Ref value)
public void setRef(java.lang.String param, java.sql.Ref value)
public void setAsciiStream(int index, java.io.InputStream stream)
public void setAsciiStream(java.lang.String param, java.io.InputStream stream)
public void setAsciiStream(int index, java.io.InputStream stream, int length)
public void setAsciiStream(java.lang.String param, java.io.InputStream stream, int length)
public void setCharacterStream(int index, java.io.Reader reader, int length)
public void setCharacterStream(java.lang.String param, java.io.Reader reader, int length)
public void setBean(java.lang.String beanName, java.lang.Object bean)
public void setMap(java.util.Map parameters)
public void setObject(int index, java.lang.Object object, int targetSqlType)
setObject
above, except that it assumes a scale of zero.public void setObject(java.lang.String param, java.lang.Object object, int targetSqlType)
setObject
above, except that it assumes a scale of zero.public void setObject(int index, java.lang.Object value)
setObject(String, Object, Class, int)
public void setObject(int index, java.lang.Object value, java.lang.Class<? extends SqlType> sqlTypeClass, int dbSqlType)
First, it checks if object is null
and invokes setNull
if so.
If object is not null
, it tries to resolve sql type
(by looking up
or using provided class) and use it for setting data.
If sql type is not found, default setObject
is invoked.
public void setObject(java.lang.String param, java.lang.Object value)
setObject(String, Object, Class, int)
public void setObject(java.lang.String param, java.lang.Object value, java.lang.Class<? extends SqlType> sqlTypeClass, int dbSqlType)
setObject(String, Object, Class, int)
public void setObjects(java.lang.Object... objects)
public void setObjects(java.lang.String[] names, java.lang.Object[] values)
public void setBatch(java.lang.String name, int[] array, int startingIndex)
public void setBatch(java.lang.String name, long[] array, int startingIndex)
public void setBatch(java.lang.String name, java.lang.Object[] array, int startingIndex)
public DbQuery autoClose()
public jodd.db.DbQueryBase.State getQueryState()
protected void checkNotClosed()
protected void checkCreated()
protected void checkInitialized()
public boolean isClosed()
true
if query is closed.public boolean isActive()
true
if query is active: created and possibly initialized.
Opened query may be not initialized.public boolean isInitialized()
true
if query is initialized. Initialized query is the one that has
created JDBC statements.protected void saveResultSet(java.sql.ResultSet rs)
public void forcePreparedStatement()
public final void init()
protected void initSession(DbSession session)
null
),
session is fetched from session provider.protected void initializeJdbc()
protected void prepareQuery()
public void closeAllResultSets()
protected java.sql.SQLException closeQuery()
public void close()
close
in interface java.lang.AutoCloseable
public void closeResultSet(java.sql.ResultSet rs)
DbQueryBase.close()
method closes all created result sets.
Query remains active.public int getType()
public void setType(int type)
public void typeForwardOnly()
public void typeScrollSensitive()
public void typeScrollInsensitive()
public int getConcurrencyType()
public void setConcurrencyType(int concurrencyType)
public void concurReadOnly()
public void concurUpdatable()
public int getHoldability()
public void setHoldability(int holdability)
public void holdCursorsOverCommit()
public void closeCursorsAtCommit()
public boolean isInDebugMode()
public void setDebug(boolean debug)
public void setDebugMode()
public java.lang.String[] getGeneratedColumnNames()
public void setGeneratedColumns(java.lang.String... columns)
public void setGeneratedKey()
public void resetGeneratedColumns()
public int getFetchSize()
setFetchSize(int)
public void setFetchSize(int rows)
Statement.setFetchSize(int)
public int getMaxRows()
setMaxRows(int)
public void setMaxRows(int maxRows)
Statement.setMaxRows(int)
public long getExecutionTime()
-1
if query is still not executed.public java.sql.ResultSet execute()
DbQueryBase.closeResultSet(ResultSet)
оr implicitly, during DbQueryBase.close()
.Statement.execute(String)
public DbCallResult executeCall()
public int executeUpdate()
auto close mode
is set.Statement.executeUpdate(String)
protected int executeUpdate(boolean closeQuery)
Statement.executeUpdate(String)
public long executeCount()
auto-close mode
is set.
Doesn't check if query is really a count query, so it would work for any
query that has number in the first column of result.
If result set returns zero rows (very unlikely), returns -1
.protected long executeCount(boolean close)
public <T> java.util.List<T> list(QueryMapper<T> queryMapper)
public <T> T find(QueryMapper<T> queryMapper)
Executes
the query and maps single result row.public <T> java.util.Set<T> listSet(QueryMapper<T> queryMapper)
Executes
the query, iterates all rows and
maps them.public java.sql.ResultSet getGeneratedColumns()
public long getGeneratedKey()
long
.public java.lang.String getQueryString()
public java.lang.String toString()
toString
in class java.lang.Object
getQueryString()
public static int getTotalOpenResultSetCount()
getOpenResultSetCount()
public int getOpenResultSetCount()
getTotalOpenResultSetCount()
Copyright © 2003-2013 Jodd Team