| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectgroovy.sql.Sql
groovy.sql.DataSet
public class DataSet
An enhancement of Groovy's Sql class providing support for accessing and querying databases using POGO fields and operators rather than JDBC-level API calls and RDBMS column names. So, instead of a query like:
 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. Also, at the moment, the expressions (or nested expressions) can only contain
 references to fields of the POGO or literals (i.e. constant Strings or numbers). This limitation
 may be removed in a future version of Groovy.
| Nested Class Summary | 
|---|
| Nested classes/interfaces inherited from class groovy.sql.Sql | 
|---|
| Sql.AbstractQueryCommand | 
| Field Summary | 
|---|
| Fields inherited from class groovy.sql.Sql | 
|---|
| ARRAY, BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, CLOB, DATALINK, DATE, DECIMAL, DISTINCT, DOUBLE, FLOAT, INTEGER, JAVA_OBJECT, LOG, LONGVARBINARY, LONGVARCHAR, NULL, NUMERIC, OTHER, REAL, REF, SMALLINT, STRUCT, TIME, TIMESTAMP, TINYINT, VARBINARY, VARCHAR | 
| Constructor Summary | |
|---|---|
| DataSet(Sql sql,
        Class type) | |
| DataSet(Sql sql,
        String table) | |
| Method Summary | |
|---|---|
|  void | add(Map<String,Object> map) | 
|  void | cacheConnection(Closure closure)Caches the connection used while the closure is active. | 
|  void | close()If this SQL object was created with a Connection then this method closes the connection. | 
| 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)Calls the provided closure for each of the rows of the table represented by this DataSet. | 
|  void | each(int offset,
     int maxRows,
     Closure closure)Calls the provided closure for a "page" of rows from the table represented by this DataSet. | 
|  DataSet | findAll(Closure where) | 
|  Object | firstRow()Returns the first row from a DataSet's underlying table | 
|  List<Object> | 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. | 
|  List | rows(int offset,
     int maxRows)Returns a "page" 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. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public DataSet(Sql sql,
               Class type)
public DataSet(Sql sql,
               String table)
| Method Detail | 
|---|
protected Connection createConnection()
                               throws SQLException
Sql
createConnection in class SqlSQLException - if a SQL error occurs
protected void closeResources(Connection connection,
                              Statement statement,
                              ResultSet results)
Sql
closeResources in class Sqlconnection - the connection to closestatement - the statement to closeresults - the results to close
protected void closeResources(Connection connection,
                              Statement statement)
Sql
closeResources in class Sqlconnection - the connection to closestatement - the statement to close
public void cacheConnection(Closure closure)
                     throws SQLException
Sql
cacheConnection in class Sqlclosure - the given closure
SQLException - if a database error occurs
public void withTransaction(Closure closure)
                     throws SQLException
Sql
withTransaction in class Sqlclosure - the given closure
SQLException - if a database error occurs
public void commit()
            throws SQLException
Sql
commit in class SqlSQLException - if a database access error occurs
public void rollback()
              throws SQLException
Sql
rollback in class SqlSQLException - if a database access error occurs
public void add(Map<String,Object> map)
         throws SQLException
SQLExceptionpublic DataSet findAll(Closure where)
public DataSet sort(Closure sort)
public DataSet reverse()
public void each(Closure closure)
          throws SQLException
closure - called for each row with a GroovyResultSet
SQLException - if a database access error occursSql.eachRow(String, java.util.List, groovy.lang.Closure)
public void each(int offset,
                 int maxRows,
                 Closure closure)
          throws SQLException
offset - the 1-based offset for the first row to be processedmaxRows - the maximum number of rows to be processedclosure - called for each row with a GroovyResultSet
SQLException - if a database access error occursSql.eachRow(String, java.util.List, int, int, groovy.lang.Closure)public String getSql()
public List<Object> getParameters()
protected SqlWhereVisitor getSqlWhereVisitor()
protected SqlOrderByVisitor getSqlOrderByVisitor()
public DataSet createView(Closure criteria)
public List rows()
          throws SQLException
SQLException - if a database error occurs
public List rows(int offset,
                 int maxRows)
          throws SQLException
offset - the 1-based offset for the first row to be processedmaxRows - the maximum number of rows to be processed
SQLException - if a database error occurs
public Object firstRow()
                throws SQLException
SQLException - if a database error occurspublic void close()
Sql
close in class Sql| 
 | Copyright © 2003-2012 The Codehaus. All rights reserved. | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||