読者です 読者をやめる 読者になる 読者になる

JoSQL(SQL for Java Objects)でソートしてみる

JoSQLはコレクション型のオブジェクトに対してSQLでアクセスするというライブラリ。
Key-Valueストアと相性いいのかな?と思って調べている。(Key-Valueストアの場合はJavaでソートさせる仕組みが必要だから)
http://josql.sourceforge.net/

JoSQLを使うには以下のjarが必要

  • JoSQL-2.1.jar
  • gentlyWEB-utils-1.1.jar

試したソース

package sample;
public class Bean {
  private String value;
  public String getValue() {
    return value;
  }
  public void setValue(String value) {
    this.value = value;
  }
}
List<Bean> array = new ArrayList<Bean>();
Bean bean1 = new Bean();
bean1.setValue("x");
Bean bean2 = new Bean();
bean2.setValue("z");
Bean bean3 = new Bean();
bean3.setValue("1");
Bean bean4 = new Bean();
bean4.setValue("2");

array.add(bean1);
array.add(bean2);
array.add(bean3);
array.add(bean4);

Query q = new Query();
q.parse("SELECT value FROM sample.Bean ORDER BY value asc");
QueryResults qr = q.execute(array);
List<List> res = qr.getResults();
for (int i = 0; i < res.size(); i++) {
  System.out.println(res.get(i).get(0)); // なぜかListにArrayListが入って返却される
}

感想

英語読めないだけかもしれないですがドキュメントが訳わかんなすぎ。
サンプルソースはMyObjectとか定義もわからないようなものがサンプルになってて困った。
MyObjectがなんなのかがわかってもMapのSelectはうまくできなかったし。。
とりあえずBeanのソートは簡単にできるぽい。ちなみにorder byだけでなくwhereはもちろんのことgroup byやサブクエリまでできるらしい。