jodd.db
Class DbQuery

java.lang.Object
  extended by jodd.db.DbQuery
Direct Known Subclasses:
DbOrmQuery, DbProfiledQuery

public class DbQuery
extends java.lang.Object

Encapsulates Statement and all its operations.

It may be:

  1. used in an un-managed way, created directly from connection;
  2. managed by DbSession;
  3. managed by DbThreadSession i.e. ThreadDbSessionHolder.


Field Summary
protected  java.sql.Connection connection
           
static DbQueryMode DEFAULT_QUERY_MODE
          Default DbQueryMode for all queries.
protected  int fetchSize
           
static boolean FORCE_PREPARED_STATEMENTS
          If set to true all created statements will be prepared.
protected  DbQueryMode mode
           
protected  java.sql.PreparedStatement preparedStatement
           
protected  jodd.db.DbQueryParser query
           
protected  java.util.Set<java.sql.ResultSet> resultSets
           
protected  DbSession session
           
static DbSessionProvider SESSION_PROVIDER
           
protected  java.lang.String sqlString
           
protected  java.sql.Statement statement
           
protected static int totalOpenResultSetCount
           
 
Constructor Summary
DbQuery(java.sql.Connection conn, java.lang.String sqlString)
          Creates new query,
DbQuery(java.sql.Connection conn, java.lang.String sqlString, DbQueryMode mode)
          Creates new query.
DbQuery(DbSession session, java.lang.String sqlString)
          Creates a new query from DbSession.
DbQuery(DbSession session, java.lang.String sqlString, DbQueryMode mode)
          Creates a new query from DbSession.
DbQuery(java.lang.String sqlString)
          Creates a new query using SESSION_PROVIDER.
DbQuery(java.lang.String sqlString, DbQueryMode mode)
          Creates a new query using SESSION_PROVIDER.
 
Method Summary
protected  void checkActive()
           
 void close()
          Closes the query and all created results sets and detaches itself from session.
 void close(java.sql.ResultSet rs)
          Closes single result set that was created by this query, It is not necessary to close result sets explicitly, since close() closes all created result sets.
protected  void closeQuery()
          Closes a query.
 java.sql.ResultSet execute()
          Executes query.
 long executeCount()
          Special execute() for 'select count(*)' queries.
 long executeCount(boolean close)
           
 long executeCountAndClose()
          Executes count queries and closes afterwards.
 int executeUpdate()
          Executes UPDATE, INSERT or DELETE queries.
 int executeUpdate(boolean closeQuery)
          Executes UPDATE, INSERT or DELETE queries and optionally closes the query.
 int executeUpdateAndClose()
          Executes UPDATE, INSERT or DELETE queries and closes query afterwards.
 int getOpenResultSetCount()
          Returns number of created result sets that are still not explicitly closed.
 java.lang.String getQueryString()
          Returns query sql string.
 DbSession getSession()
          Returns DbSession used for creating this query.
static int getTotalOpenResultSetCount()
          Returns total number of open result sets.
protected  void init(java.sql.Connection connection, java.lang.String sqlString, DbQueryMode mode)
          Initializes query.
protected  void init(java.lang.String sqlString)
           
 boolean isActive()
          Returns true if query is opened.
 boolean isClosed()
          Returns true if query is closed.
 void reset()
          Resets an used query, using the same connection, sql query string and query mode, Closes current statement and creates a new one.
 void setArray(int index, java.sql.Array value)
           
 void setArray(java.lang.String param, java.sql.Array value)
           
 void setBean(java.lang.String beanName, java.util.Map parameters)
          Sets bean parameters from map.
 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 setClob(int index, java.sql.Clob value)
           
 void setClob(java.lang.String param, java.sql.Clob value)
           
 void setDate(int index, java.sql.Date value)
           
 void setDate(java.lang.String param, java.sql.Date value)
           
 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)
           
 DbQuery 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 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)
           
 DbQuery 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(java.lang.String param, int value)
           
 void setObject(int index, java.lang.Object value)
           
 void setObject(java.lang.String param, java.lang.Object value)
           
 void setParameters(java.util.Map<java.lang.String,?> parameters)
           
 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 setURL(int index, java.net.URL value)
           
 void setURL(java.lang.String param, java.net.URL value)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FORCE_PREPARED_STATEMENTS

public static boolean FORCE_PREPARED_STATEMENTS
If set to true all created statements will be prepared.


totalOpenResultSetCount

protected static int totalOpenResultSetCount

statement

protected java.sql.Statement statement

preparedStatement

protected java.sql.PreparedStatement preparedStatement

resultSets

protected java.util.Set<java.sql.ResultSet> resultSets

mode

protected DbQueryMode mode

query

protected jodd.db.DbQueryParser query

connection

protected java.sql.Connection connection

sqlString

protected java.lang.String sqlString

session

protected DbSession session

DEFAULT_QUERY_MODE

public static DbQueryMode DEFAULT_QUERY_MODE
Default DbQueryMode for all queries.


SESSION_PROVIDER

public static DbSessionProvider SESSION_PROVIDER

fetchSize

protected int fetchSize
Constructor Detail

DbQuery

public DbQuery(java.sql.Connection conn,
               java.lang.String sqlString)
Creates new query,


DbQuery

public DbQuery(java.sql.Connection conn,
               java.lang.String sqlString,
               DbQueryMode mode)
Creates new query.


DbQuery

public DbQuery(DbSession session,
               java.lang.String sqlString,
               DbQueryMode mode)
Creates a new query from DbSession.


DbQuery

public DbQuery(DbSession session,
               java.lang.String sqlString)
Creates a new query from DbSession.


DbQuery

public DbQuery(java.lang.String sqlString,
               DbQueryMode mode)
Creates a new query using SESSION_PROVIDER.


DbQuery

public DbQuery(java.lang.String sqlString)
Creates a new query using SESSION_PROVIDER.

Method Detail

getTotalOpenResultSetCount

public static int getTotalOpenResultSetCount()
Returns total number of open result sets.

See Also:
getOpenResultSetCount()

getQueryString

public java.lang.String getQueryString()
Returns query sql string. For prepared statements, returns sql string with quick-and-dirty replaced values.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
See Also:
getQueryString()

init

protected void init(java.sql.Connection connection,
                    java.lang.String sqlString,
                    DbQueryMode mode)
Initializes query. Must be called from ctors.


init

protected void init(java.lang.String sqlString)

reset

public void reset()
Resets an used query, using the same connection, sql query string and query mode, Closes current statement and creates a new one.


isClosed

public boolean isClosed()
Returns true if query is closed.


isActive

public boolean isActive()
Returns true if query is opened.


checkActive

protected void checkActive()

closeQuery

protected void closeQuery()
Closes a query.

See Also:
close()

close

public void close()
Closes the query and all created results sets and detaches itself from session. No further usage is possible after the query is closed!


close

public void close(java.sql.ResultSet rs)
Closes single result set that was created by this query, It is not necessary to close result sets explicitly, since close() closes all created result sets. However, statement (e.g. query) remains open.


getSession

public DbSession getSession()
Returns DbSession used for creating this query. If no session used, returns null.


setFetchSize

public DbQuery 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. The number of rows specified affects only result sets created using this statement. If the value specified is zero, then the hint is ignored. The default value is zero.

See Also:
Statement.setFetchSize(int)

setMaxRows

public DbQuery setMaxRows(int maxRows)
Sets the limit for the maximum number of rows that any ResultSet object can contain to the given number. If the limit is exceeded, the excess rows are silently dropped.

See Also:
Statement.setMaxRows(int)

execute

public java.sql.ResultSet execute()
Executes query. If this method is invoked at least once, the query or all created resultsets must be explicitly closed at the end of query usage. This can be done explicitly by calling close(java.sql.ResultSet) оr implicitly, during close(). The fetch size is set before execution.

See Also:
Statement.execute(String)

getOpenResultSetCount

public int getOpenResultSetCount()
Returns number of created result sets that are still not explicitly closed.

See Also:
getTotalOpenResultSetCount()

executeUpdate

public int executeUpdate()
Executes UPDATE, INSERT or DELETE queries.

See Also:
Statement.executeUpdate(String)

executeUpdateAndClose

public int executeUpdateAndClose()
Executes UPDATE, INSERT or DELETE queries and closes query afterwards.

See Also:
Statement.executeUpdate(String)

executeUpdate

public int executeUpdate(boolean closeQuery)
Executes UPDATE, INSERT or DELETE queries and optionally closes the query.

See Also:
Statement.executeUpdate(String)

executeCount

public long executeCount()
Special execute() for 'select count(*)' queries. Query is not closed after the execution.

It doesn't check if query is really a count query. Before execution it sets fetch size to 1. If resultset returns zero rows, (what is very unlikely), it returns -1.


executeCountAndClose

public long executeCountAndClose()
Executes count queries and closes afterwards.


executeCount

public long executeCount(boolean close)

setNull

public void setNull(int index,
                    int type)

setNull

public void setNull(java.lang.String param,
                    int value)

setInteger

public void setInteger(int index,
                       int value)

setInteger

public void setInteger(java.lang.String param,
                       int value)

setInteger

public void setInteger(int index,
                       java.lang.Number value)

setInteger

public void setInteger(java.lang.String param,
                       java.lang.Number value)

setBoolean

public void setBoolean(int index,
                       boolean value)

setBoolean

public void setBoolean(java.lang.String param,
                       boolean value)

setBoolean

public void setBoolean(int index,
                       java.lang.Boolean value)

setBoolean

public void setBoolean(java.lang.String param,
                       java.lang.Boolean value)

setLong

public void setLong(int index,
                    long value)

setLong

public void setLong(java.lang.String param,
                    long value)

setLong

public void setLong(int index,
                    java.lang.Number value)

setLong

public void setLong(java.lang.String param,
                    java.lang.Number value)

setByte

public void setByte(int index,
                    byte value)

setByte

public void setByte(java.lang.String param,
                    byte value)

setByte

public void setByte(int index,
                    java.lang.Number value)

setByte

public void setByte(java.lang.String param,
                    java.lang.Number value)

setBytes

public void setBytes(int index,
                     byte[] value)

setBytes

public void setBytes(java.lang.String param,
                     byte[] value)

setDouble

public void setDouble(int index,
                      double value)

setDouble

public void setDouble(java.lang.String param,
                      double value)

setDouble

public void setDouble(int index,
                      java.lang.Number value)

setDouble

public void setDouble(java.lang.String param,
                      java.lang.Number value)

setFloat

public void setFloat(int index,
                     float value)

setFloat

public void setFloat(java.lang.String param,
                     float value)

setFloat

public void setFloat(int index,
                     java.lang.Number value)

setFloat

public void setFloat(java.lang.String param,
                     java.lang.Number value)

setShort

public void setShort(int index,
                     short value)

setShort

public void setShort(java.lang.String param,
                     short value)

setShort

public void setShort(int index,
                     java.lang.Number value)

setShort

public void setShort(java.lang.String param,
                     java.lang.Number value)

setString

public void setString(int index,
                      java.lang.String value)

setString

public void setString(java.lang.String param,
                      java.lang.String value)

setDate

public void setDate(int index,
                    java.sql.Date value)

setDate

public void setDate(java.lang.String param,
                    java.sql.Date value)

setTime

public void setTime(int index,
                    java.sql.Time value)

setTime

public void setTime(java.lang.String param,
                    java.sql.Time value)

setTimestamp

public void setTimestamp(int index,
                         java.sql.Timestamp value)

setTimestamp

public void setTimestamp(java.lang.String param,
                         java.sql.Timestamp value)

setBigDecimal

public void setBigDecimal(int index,
                          java.math.BigDecimal value)

setBigDecimal

public void setBigDecimal(java.lang.String param,
                          java.math.BigDecimal value)

setBigInteger

public void setBigInteger(int index,
                          java.math.BigInteger value)

setBigInteger

public void setBigInteger(java.lang.String param,
                          java.math.BigInteger value)

setURL

public void setURL(int index,
                   java.net.URL value)

setURL

public void setURL(java.lang.String param,
                   java.net.URL value)

setBlob

public void setBlob(int index,
                    java.sql.Blob value)

setBlob

public void setBlob(java.lang.String param,
                    java.sql.Blob value)

setClob

public void setClob(int index,
                    java.sql.Clob value)

setClob

public void setClob(java.lang.String param,
                    java.sql.Clob value)

setArray

public void setArray(int index,
                     java.sql.Array value)

setArray

public void setArray(java.lang.String param,
                     java.sql.Array value)

setRef

public void setRef(int index,
                   java.sql.Ref value)

setRef

public void setRef(java.lang.String param,
                   java.sql.Ref value)

setBean

public void setBean(java.lang.String beanName,
                    java.lang.Object bean)
Sets bean parameters from bean. Non-existing bean properties are ignored.


setBean

public void setBean(java.lang.String beanName,
                    java.util.Map parameters)
Sets bean parameters from map. Non existing bean properties are ignored.


setObject

public void setObject(int index,
                      java.lang.Object value)

setObject

public void setObject(java.lang.String param,
                      java.lang.Object value)

setParameters

public void setParameters(java.util.Map<java.lang.String,?> parameters)


Copyright ©2008 Jodd Team