Index: src/net/lemnik/eodsql/QueryTool.java
===================================================================
--- src/net/lemnik/eodsql/QueryTool.java (revision 217)
+++ src/net/lemnik/eodsql/QueryTool.java (working copy)
@@ -22,6 +22,7 @@
import net.lemnik.eodsql.spi.MethodImplementationFactory;
import net.lemnik.eodsql.spi.util.DataObjectBinding;
+import net.lemnik.eodsql.spi.util.MapDataObjectBinding;
/**
*
@@ -309,7 +310,7 @@
*
* Sometimes you need to perform a less structured "SELECT" than a Query interface allows. Although this method
* is significantly slower than building a Query interface, it provides needed functionality that a Query
- * interface cannot. The returned {@link DataSet} will be connected to the database, and the Connection will be
+ * interface cannot. The returned {@link DataSet} will be connected to the database and will be updatable, and the Connection will be
* taken from the {@link #setDefaultDataSource(DataSource) defaultDataSource}.
*
* This method does no caching of any sort, and the query will be re-parsed each time it is executed. It however
@@ -351,7 +352,7 @@
*
* Sometimes you need to perform a less structured "SELECT" than a Query interface allows. Although this method
* is significantly slower than building a Query interface, it provides needed functionality that a Query
- * interface cannot. The returned {@link DataSet} will be connected to the database and the Connection is
+ * interface cannot. The returned {@link DataSet} will be connected to the database and will be updatable and the Connection is
* obtained from the DataSource
provided.
*
* This method does no caching of any sort, and the query will be re-parsed each time it is executed. It however
@@ -419,7 +420,7 @@
*
* Sometimes you need to perform a less structured "SELECT" than a Query interface allows. Although this method
* is significantly slower than building a Query interface, it provides needed functionality that a Query
- * interface cannot. The returned {@link DataSet} will be connected to the database.
+ * interface cannot. The returned {@link DataSet} will be connected to the database and will be updatable.
*
* This method does no caching of any sort, and the query will be re-parsed each time it is executed. It however
* provides the same primitive-type abstraction that a Query interface provides you with. The query string is
@@ -484,6 +485,118 @@
}
/**
+ *
+ * Sometimes you need to perform a less structured "SELECT" than a Query interface allows. Although this method
+ * is significantly slower than building a Query interface, it provides needed functionality that a Query
+ * interface cannot. The returned {@link DataSet} will be connected to the database and will be updatable, and the Connection will be
+ * taken from the {@link #setDefaultDataSource(DataSource) defaultDataSource}.
+ *
+ * This method does no caching of any sort, and the query will be re-parsed each time it is executed. It however
+ * provides the same primitive-type abstraction that a Query interface provides you with. The query string is
+ * parsed in the same way as a query string passed to an {@link Select @Select} annotation.
+ *
+ * This method is the same as calling select(getDefaultDataSource(), type, query, parameters)
.
+ *
+ *
+ * @param query the SQL query to be executed
+ * @param parameters the parameters to be used in conjunction with the query string.
+ * @return a connected {@code DataSet} containing the selected rows
+ * reflected as a map where each key is one column name
+ * @see #select(DataSource, Class, String, Object...)
+ * @throws InvalidQueryException if the query string given cannot
+ * be parsed, or doesn't match the given parameters
+ * @throws IllegalStateException is the defaultDataSource has not yet been set
+ */
+ public static DataSet