org.tentackle.db
Class PooledPreparedStatement

java.lang.Object
  extended by org.tentackle.db.PooledPreparedStatement
All Implemented Interfaces:
Comparable<PooledPreparedStatement>

public class PooledPreparedStatement
extends Object
implements Comparable<PooledPreparedStatement>

Pooled prepared statement.

Prepared statements are always pooled. Once prepared they can be used by any db. Each statement gets a unique statement-id (the index in an array + 1) that is valid for all Db and connections. The physical preparation is done when the statement is actually used with a connection. Applications reference statements only by their id and because the id is the same for all threads/Db/connections, it can be stored in a static context.

Note: we don't provide the holdability (since JDBC 3.0) cause there is no default behaviour defined so far. Rule of thumb: always close cursors *before* the the end of transaction.


Method Summary
 int compareTo(PooledPreparedStatement obj)
          Compares two statements.
 boolean equals(Object obj)
          Indicates whether some other object is "equal to" this one.
static int getAllocationSize()
          Gets the current allocation size
 int getResultSetConcurrency()
           
 int getResultSetType()
           
 String getSql()
          Gets the SQL string for this statement
static PooledPreparedStatement getStatement(int stmtId)
          Gets the statement according to the id.
 int getStatementId()
          Gets the ID of this statement.
static int getStatementId(String sql, int resultSetType, int resultSetConcurrency)
          Gets the ID of a prepared statement.
 int hashCode()
          Returns a hash code value for the object.
static int prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
          Prepares a statement.
 String toString()
          Returns a string representation of the object.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

getAllocationSize

public static int getAllocationSize()
Gets the current allocation size

Returns:
the number of statements allocated

getStatementId

public int getStatementId()
Gets the ID of this statement.

Returns:
the statement id

getSql

public String getSql()
Gets the SQL string for this statement

Returns:
the sql string

getResultSetType

public int getResultSetType()
Returns:
the resultset type

getResultSetConcurrency

public int getResultSetConcurrency()
Returns:
the resultset concurrency

compareTo

public int compareTo(PooledPreparedStatement obj)
Compares two statements. Statements are unique to sql + resultSetType + resultSetConcurrency

Specified by:
compareTo in interface Comparable<PooledPreparedStatement>
Parameters:
obj - the statement to compare with
Returns:
0 if equal to this statement, else logically less or greater than obj

equals

public boolean equals(Object obj)
Description copied from class: java.lang.Object
Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).

Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.

Overrides:
equals in class Object
Parameters:
obj - the reference object with which to compare.
Returns:
true if this object is the same as the obj argument; false otherwise.
See Also:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
Description copied from class: java.lang.Object
Returns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided by java.util.Hashtable.

The general contract of hashCode is:

As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)

Overrides:
hashCode in class Object
Returns:
a hash code value for this object.
See Also:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
Description copied from class: java.lang.Object
Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Overrides:
toString in class Object
Returns:
the logging info

prepareStatement

public static int prepareStatement(String sql,
                                   int resultSetType,
                                   int resultSetConcurrency)
Prepares a statement.

Parameters:
sql - the SQL string
resultSetType - is one of ResultSet.TYPE_...
resultSetConcurrency - is one of ResultSet.CONCUR_..
Returns:
the statement ID (starting at 1)

getStatement

public static PooledPreparedStatement getStatement(int stmtId)
Gets the statement according to the id.

Parameters:
stmtId - the global ID of the statement
Returns:
the statement

getStatementId

public static int getStatementId(String sql,
                                 int resultSetType,
                                 int resultSetConcurrency)
Gets the ID of a prepared statement. Use this function to re-use one-time prepared statements (i.e. for qbf)

Parameters:
sql - the sql string
resultSetType - the resultset type
resultSetConcurrency - the resultset concurrency
Returns:
the statement ID or 0 if no such statement


Copyright © 2001-2008 Harald Krake, Bergstr. 48, 78098 Triberg, Germany, harald@krake.de