S2JDBCで外部SQL
//ロジッククラス public class EmpService extends AbstractService<Emp> { public List<Emp> outSqlSelectAll(){ return selectBySqlFile(Emp.class, "selectAll.sql").getResultList(); } }
//ロジッククラスのスーパークラス public abstract class AbstractService<ENTITY> extends S2AbstractService<ENTITY> { //オーバーライド protected void setEntityClass(Class<ENTITY> entityClass) { this.entityClass = entityClass; sqlFilePathPrefix = "sql/"; } }
SQLファイルをresource/にsqlフォルダを作成し、
sqlフォルダにファイル"selectAll.sql"を作成する。
select * from emp
パラメータ有(1個)
public List<Emp> outSqlSelectWhere(){ return selectBySqlFile(Emp.class,"selectWhereSal.sql",2000).getResultList(); }
select * from emp where sal > /*salMin*/1000
パラメータ有(複数)
SQLファイルのパラメータが複数の場合は、selectBySqlFile() の3番目の引数をJavaBeansまたは
Map
JavaBeansのプロパティ名または Map のキーを一致させます。
public List<Emp> outSqlSelectWhereMult(){ Map map = new HashMap(); map.put("salMin", 2000); map.put("deptId", 2); return selectBySqlFile(Emp.class, "selectWhereMult.sql",map).getResultList(); }
select * from emp where sal > /*salMin*/1000 and dept_id = /*deptId*/1
【参考サイト】
Seasar2 - S2JDBC - JdbcManager - SQLファイルによる操作
http://bw2hr.cocolog-nifty.com/blog/2009/01/s2jdbcsql-8af1.html