public class DataSet extends Sql
 def db = // an instance of groovy.sql.Sql
 def sql = '''select * from Person
     where (purchaseCount > ? and birthMonth = ?)
     and (lastName < ? or lastName > ?)
     and age < ? and age > ? and firstName != ?
     order by firstName DESC, age'''
 def params = [10, "January", "Zulu", "Alpha", 99, 5, "Bert"]
 def sortedPeopleOfInterest = db.rows(sql, params)
 
 You can write code like this:
 
 def person = new DataSet(db, 'Person') // or db.dataSet('Person'), or db.dataSet(Person)
 def janFrequentBuyers = person.findAll { it.purchaseCount > 10 && it.lastName == "January" }
 def sortedPeopleOfInterest = janFrequentBuyers.
     findAll{ it.lastName < 'Zulu' || it.lastName > 'Alpha' }.
     findAll{ it.age < 99 }.
     findAll{ it.age > 5 }.
     sort{ it.firstName }.reverse().
     findAll{ it.firstName != 'Bert' }.
     sort{ it.age }
 
 Currently, the Groovy source code for any accessed POGO must be on the
 classpath at runtime.Sql.AbstractQueryCommand, Sql.PreparedQueryCommand, Sql.QueryCommand| Constructor and Description | 
|---|
DataSet(Sql sql,
       Class type)  | 
DataSet(Sql sql,
       String table)  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
add(Map<String,Object> map)  | 
void | 
cacheConnection(Closure closure)
Caches the connection used while the closure is active. 
 | 
protected void | 
closeResources(Connection connection,
              Statement statement)
An extension point allowing the behavior of resource closing to be
 overridden in derived classes. 
 | 
protected void | 
closeResources(Connection connection,
              Statement statement,
              ResultSet results)
An extension point allowing derived classes to change the behavior
 of resource closing. 
 | 
void | 
commit()
If this SQL object was created with a Connection then this method commits
 the connection. 
 | 
protected Connection | 
createConnection()
An extension point allowing derived classes to change the behavior of
 connection creation. 
 | 
DataSet | 
createView(Closure criteria)  | 
void | 
each(Closure closure)  | 
DataSet | 
findAll(Closure where)  | 
Object | 
firstRow()
Returns the first row from a DataSet's underlying table 
 | 
List | 
getParameters()  | 
String | 
getSql()  | 
protected SqlOrderByVisitor | 
getSqlOrderByVisitor()  | 
protected SqlWhereVisitor | 
getSqlWhereVisitor()  | 
DataSet | 
reverse()  | 
void | 
rollback()
If this SQL object was created with a Connection then this method rolls back
 the connection. 
 | 
List | 
rows()
Returns a List of all of the rows from the table a DataSet
 represents 
 | 
DataSet | 
sort(Closure sort)  | 
void | 
withTransaction(Closure closure)
Performs the closure within a transaction using a cached connection. 
 | 
ARRAY, asList, asList, asSql, BIGINT, BINARY, BIT, BLOB, BOOLEAN, cacheStatements, call, call, call, call, call, call, CHAR, checkForNamedParams, CLOB, close, closeResources, configure, createPreparedQueryCommand, createQueryCommand, DATALINK, dataSet, dataSet, DATE, DECIMAL, DISTINCT, DOUBLE, eachRow, eachRow, eachRow, eachRow, eachRow, eachRow, execute, execute, execute, execute, executeInsert, executeInsert, executeInsert, executeInsert, executePreparedQuery, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, expand, findWhereKeyword, firstRow, firstRow, firstRow, firstRow, FLOAT, getConnection, getDataSource, getParameters, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, in, inout, INTEGER, isCacheNamedQueries, isCacheStatements, isEnableNamedQueries, isWithinBatch, JAVA_OBJECT, loadDriver, LONGVARBINARY, LONGVARCHAR, newInstance, newInstance, newInstance, newInstance, newInstance, newInstance, newInstance, NULL, nullify, NUMERIC, OTHER, out, query, query, query, REAL, REF, resultSet, rows, rows, rows, rows, rows, rows, rows, setCacheNamedQueries, setCacheStatements, setEnableNamedQueries, setInternalConnection, setObject, setParameters, setResultSetConcurrency, setResultSetHoldability, setResultSetType, SMALLINT, STRUCT, TIME, TIMESTAMP, TINYINT, VARBINARY, VARCHAR, withBatch, withBatch, withStatementprotected Connection createConnection() throws SQLException
SqlcreateConnection in class SqlSQLException - if a SQL error occursprotected void closeResources(Connection connection, Statement statement, ResultSet results)
SqlcloseResources in class Sqlconnection - the connection to closestatement - the statement to closeresults - the results to closeprotected void closeResources(Connection connection, Statement statement)
SqlcloseResources in class Sqlconnection - the connection to closestatement - the statement to closepublic void cacheConnection(Closure closure) throws SQLException
SqlcacheConnection in class Sqlclosure - the given closureSQLException - if a database error occurspublic void withTransaction(Closure closure) throws SQLException
SqlwithTransaction in class Sqlclosure - the given closureSQLException - if a database error occurspublic void commit()
            throws SQLException
Sqlcommit in class SqlSQLException - if a database access error occurspublic void rollback()
              throws SQLException
Sqlrollback in class SqlSQLException - if a database access error occurspublic void add(Map<String,Object> map) throws SQLException
SQLExceptionpublic DataSet reverse()
public void each(Closure closure) throws SQLException
SQLExceptionpublic String getSql()
public List getParameters()
protected SqlWhereVisitor getSqlWhereVisitor()
protected SqlOrderByVisitor getSqlOrderByVisitor()
public List rows() throws SQLException
SQLException - if a database error occurspublic Object firstRow() throws SQLException
SQLException - if a database error occurs