Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.0
-
None
-
Operating System: All
Platform: All
-
31446
Description
Add set of ResultSetHandlers that return a Map instead of List.
For each row, key is determined (default is first column, user can specify
column index/name in constructor). Next the row is converted to scalar,
Array, Map or bean and stored in the Map under key.
object Array Map Bean
----------------- ---------------- -------------- ---------------
ColumnMapHandler ArrayMapHandler MapMapHandler BeanListHandler
Examples:
String; sql = "select user_id, user_name, last_login from passwd";
Map users = (Map)run.query(
"select user_id, user_name from passwd",
new ColumnMapHandler());
System.out.println(users.get("usr007"));
Map users = (Map)run.query(sql, new ArrayMapArray());
System.out.println(users.get("usr007")[2]);
Map users = (Map)run.query(sql, new MapMapArray());
System.out.println(users.get("usr007").get("last_login"));
Map users = (Map)run.query(sql, new MapBeanArray(TestBean.class));
System.out.println(users.get("usr007").getLastLogin());
Implementation note:
Map implementation is LinkedHashMap. This class does preserve order of
insertions, thus, the sorting can be done in sql. However this
class is @since 1.4.
Attached is source code (based on HEAD) and test cases.