Class ResultSetWork<R>

java.lang.Object
net.sf.basedb.core.hibernate.ResultSetWork<R>
All Implemented Interfaces:
ReturningWork<R>
Direct Known Subclasses:
AbstractSqlQuery.CountWork

public abstract class ResultSetWork<R>
extends Object
implements ReturningWork<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: 2014-06-10 13:27:02 +0200 (ti, 10 jun 2014) $
  • Field Details

  • Constructor Details

    • 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 Details

    • execute

      public R execute​(Connection connection) throws SQLException
      From the Work interface -----------------------
      Specified by:
      execute in interface ReturningWork<R>
      Throws:
      SQLException
    • getSql

      public String getSql()
      The sql that is executed by this work.
      Since:
      3.1
    • 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