2.17.2: 2011-06-17

net.sf.basedb.core.hibernate
Class ResultSetWork<R>

java.lang.Object
  extended by net.sf.basedb.core.hibernate.ResultSetWork<R>
All Implemented Interfaces:
JdbcWork<R>, org.hibernate.jdbc.Work

public abstract class ResultSetWork<R>
extends Object
implements JdbcWork<R>

A work implementation that executes an SQL query on the connection, and returns a value that is picked by a subclass from the resulting ResultSet. This class needs to be subclassed and implementors should provide an implementation of the getResult(ResultSet) method. By overridding the setParameters(PreparedStatement) method it is possible to set parameters on the prepared statement before the SQL is executed.

Version:
2.9
Author:
nicklas
Last modified
$Date: 2008-09-11 22:11:02 +0200 (Thu, 11 Sep 2008) $

Field Summary
private  R result
           
private  SessionControl sc
           
private  String sql
           
 
Constructor Summary
ResultSetWork(SessionControl sc, String sql)
          Create a new work item.
 
Method Summary
 void execute(Connection connection)
          From the Work interface -----------------------
 R getResult()
          Get the result of the work.
protected abstract  R getResult(ResultSet rs)
          This method needs to be overridden by subclasses to extract the result from the ResultSet.
protected  void setParameters(PreparedStatement ps)
          This method should be overridden by subclasses that needs to set parameters on the statement that is going to be executed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sc

private SessionControl sc

sql

private String sql

result

private R result
Constructor Detail

ResultSetWork

public ResultSetWork(SessionControl sc,
                     String sql)
Create a new work item.

Parameters:
sc - The session control to keep alive during the execution of the sql, or null
sql - The sql to execute
Method Detail

execute

public void execute(Connection connection)
             throws SQLException
From the Work interface -----------------------

Specified by:
execute in interface org.hibernate.jdbc.Work
Throws:
SQLException

getResult

public R getResult()
Description copied from interface: JdbcWork
Get the result of the work.

Specified by:
getResult in interface JdbcWork<R>
Returns:
The result from the getResult(ResultSet) method.

setParameters

protected void setParameters(PreparedStatement ps)
                      throws SQLException
This method should be overridden by subclasses that needs to set parameters on the statement that is going to be executed. The default implementation does nothing. This method is called after the statement has been prepared with Connection.prepareStatement(String) and before it is executed with PreparedStatement.executeUpdate().

Parameters:
ps - The prepared statement
Throws:
SQLException

getResult

protected abstract R getResult(ResultSet rs)
                        throws SQLException
This method needs to be overridden by subclasses to extract the result from the ResultSet. The result set will be closed after the call to this method.

Parameters:
rs - The result set to get the result from
Throws:
SQLException

2.17.2: 2011-06-17