vosao-database
A plugin for Vosao CMS. Provides access to the datastore. Perform simple SQL-like operations on the datastore from Velocity scripts.
Project Page Download

API Reference

long insert(String table, List<String> cols, List<Object> data);

long update(String table, long key, List<String> cols, List<Object> data);

Query createQuery(String table);

Query addFilter(Query query, String col, String operator, Object val);

List<Object> selectRow(List<String> cols, Query query);

List<List<Object>> selectRows(List<String> cols, Query query);

List<List<Object>> selectRows(List<String> cols, Query query, int offset, int limit);

List<Long> selectKeys(Query query);

void delete(String table, long key);

void delete(String table, List<Long> keys);

Sample Usage
Here's a sample that should show how to use it:
#set ($cols = ["col1", "col2"])
#set ($vals = ["val1", "val2"])
<br>
cols = $cols<br>
<br>
vals = $vals<br>
<br>
#set ($insert = ${plugin.database.insert("test", $cols, $vals)})
insert = $insert<br>
<br>
#set ($insert = ${plugin.database.insert("test", $cols, $vals)})
insert = $insert <br>
<br>
${vals.set(1, "val3")}
${plugin.database.update("test", $insert, $cols, $vals)}
#set ($query = ${plugin.database.createQuery("test")})
query = $query
<br>
#set ($query = ${plugin.database.addFilter($query, "col2", "==", "val3")})
query = $query
<br>
#set ($res = ${plugin.database.selectRows($cols, $query)})
##res = $res <br>
#foreach ($row in $res)
  row = $row <br>
  #foreach ($col in $row)
    col = $col <br>
  #end
#end
<br>
#set ($keys = ${plugin.database.selectKeys($query)})
#foreach ($key in $keys)
  key = $key
#end
${plugin.database.delete("test", $keys)}
<br>
FAQ
Q : How do I create/delete tables?

A : Creation is automatic with first insert. Don't know how to delete yet.


Q : How do I add columns to a table?

A : That's automatic as well.


Q : Is there support for {primary | unqiue} keys?

A : No

Notes