SQLの組み立て用APIの構想

なんらかの理由でSQLファイルを使いたくない場合は、Spring JDBCとか、DbUtilsを使ってもらえばいいかなぁと思っていましたが、SQL組み立て用のAPIがあってもいいかもしれないと思い、プロトタイプを作成中。

Java
SelectBuilder builder = SelectBuilder.newInstance(config);
builder.queryTimeout(10);
builder.maxRows(100);
builder.sql("select * from Emp");
builder.sql("where");
builder.sql("name = ").param(String.class, "foo");
builder.sql("and");
builder.sql("salary > ").param(int.class, 100);
List<Emp> list = builder.getResultList(Emp.class);
実行されるSQL
select * from Emp
where
name = 'foo'
and
salary > 100

fluentに呼び出せますが、そうしないほうが読みやすい気がしています。
動的SQLの組み立てに使うことを考えて、パラメータは後でバインドするのではなく、組み立てながら設定できるようにしています。
SQLファイルを使うときと、内部のロジックはいっしょなので、ページング、イテレート検索などもOK。