検索
単純な検索は、SQL文を書く必要はありません。
- S2Dao#select(Class beanClass, String criteria, Object bindVariable)
- S2Dao#select(Class beanClass, String criteria, Object[] bindVariables)
List result = dao.select(Emp.class, "empno = ?", new Integer(7788));
criteriaでWHERE句の条件を指定します。
List result = dao.select(Emp.class, "job = ? AND deptno = ?",
new Object[]{"CLERK", new Integer(20)});
リレーションもサポートします。
今のところはn:1のリレーションのみです。
HibernateでいうMany to Oneです。
例えば従業員テーブルから部署テーブルを取得するには、
次のようにEmpクラスにプロパティとメタデータを定義します。
プロパティ名_ONEで指定したプロパティ(カラム)と
private static final String DEPT_ONE = "deptno";
private Dept dept_;public Dept getDept() {
return dept_;
}public void setDept(Dept dept) {
dept_ = dept;
}
プロパティ(Dept)のテーブルのプライマリーキーが
Select時に外部結合されてデータが取得されます。
Hibernate方式。
ONE側のテーブルを検索の条件に含めるには次のようにします。
データベースによる方言は、DatabaseMetaData#getDatabaseProductName()
List result = dao.select(Emp.class, "dept.dname = ?", "SALES");
により適切な方言処理用クラスが自動的に選択されて処理されます。