DynaBeansを通じて、クエリをかけたりデータのinsert,update,deleteを行うシンプルなAPIがあります。これは、本質的には、commons-sql model beans (Database, Table, Column) を DanaClass, DynaBean, DynaPropertyインスタンスにバインドします。
ですから以下のように
// lets parser the model from XML
DatabaseReader reader = new DatabaseReader();
Database model = (Database) reader.parse( "mymodel.xml" );
// JDBC connection pool, maybe using DBCP and Pool from commons
DataSource source = ...;
// now lets add some data
DynaSql dynaSql = new DynaSql(source, model);
DynaBean author = dynaSql.newInstance( "author" );
author.set( "name", "James" );
author.set( "whatever", new Integer(1234));
dynaSql.insert(author);
あるいは任意のクエリをデータベースに行うには、
// perform a query with no arguments
Iterator iter = dynaSql.query( "select * from book" );
while (iter.hasNext()) {
DynaBean book = (DynaBean) iter.next();
String title = book.get("title");
...
}
// perform a query with arguments
List params = new ArrayList();
params.add("Some title");
Iterator iter = dynaSql.query( "select * from book where title = ?", params );
while (iter.hasNext()) {
DynaBean book = (DynaBean) iter.next();
String title = book.get("title");
...
}
これによって、シンプル且つ単純に何かを行いたい場合や動的にテーブルを作成したい場合、あるいは任意のデータベーススキーマを実行時に扱いたい場合など、手っ取り早く行うことが出来るようになります。シンプルな一括ロード用プログラムを書いたり、SQLデータを包括的に扱う場合にもまた有効でしょう。
パーシスタント・スキーマがより良く定義されていたとしても、OJBやTorqueといったツールがより適切な場合もあります。