Javaオブジェクトに対してSQLを実行 - JoSQL 0.9公開

JoSQLプロジェクトは5日(現地時間)、Javaプログラム用の一風変わったSQLライブラリであるJoSQL(Java Objects SQL)バージョン0.9を公開した。SQLのクエリーといえば、通常はデータベースに対して発行するものである。しかしJoSQLの場合、データベースではなくJavaオブジェクトに対してSQLクエリーの発行を行う機能を提供する。

JoSQLを利用すれば、Javaプログラムでコレクション・オブジェクトに対してSQLを実行し、要素の検索などを行えるようになる。SQLクエリーはListオブジェクトに対して発行でき、結果はQuetyResultというオブジェクトで返される。例えばリスト1のような具合だ。

リスト1

List<Member> list = new ArrayList<Member>();
list.add(new Member("Sugiyama", "male", 35));
list.add(new Member("Sasaki", "female", 25));
list.add(new Member("Goto", "male", 30));

Query query = new Query();
String sql =
   "SELECT * FROM " + Member.class.getName() + " WHERE age BETWEEN 30 AND 40";
query.parse(sql);
        
QueryResults results = query.execute(list);
List<Member> resultList = results.getResults();
for (Member target : resultList) {
     System.out.println(target);
}

この例では、Listに格納されたデータに対してWHEREで条件付けをして検索を行っている。BETWEEN以外にもLIKEやHAVING、ORDER BY、GROUPE BY、LIMITなどをサポートしている。ただし、SQLが使えるとはいっても言語仕様を完全にサポートしているわけではないので注意が必要だ。

SQLの利点は、比較的簡単な構文でありながら非常に複雑な条件によるデータの抽出が行えることである。JoSQLは、その利点をコレクション・フレームワークに対して適用できるようにする。状況に応じて非常に便利な使い方のできるライブラリである。JoSQLはApache License v2.0のもとで公開されている。配布ファイルにはライブラリ本体の他にいくつかのサンプルプログラムも含まれているので、有効な利用方法を探してみるといいだろう。



人気記事

一覧

イチオシ記事

新着記事