S2JDBC
S2DaoやS2DataSetの永続化エンジンにあたるのが
S2JDBCです。JDBCをコンポーネント化したものです。
主要なコンポーネントは次の人たちです。
- BasicSelectHandler
プロパティは、
DataSource dataSource,
String sql,
ResultSetHandler resultSetHandler,
int fetchSize,
int maxRows
ResultSetHandlerは次のものがあらかじめ用意されています。
- MapResultSetHandler
- BeanResultSetHandler
- MapListResultSetHandler
- BeanListResultSetHandler
- MapPagingListResultSetHandler
- BeanPaginListResultSetHandler
- ObjectResultSetHandler
DbUtilsにわざとにせているので、DbUtilsをごぞんじのかたは、
説明もいらないくらいだと思います。
メソッドは、Object execute(Object[] args)だけがpublicに用意されています。
更新用には、
- BasicUpdateHandler
プロパティは、
DataSource dataSource,
String sql
メソッドは、int execute(Object[] args)だけがpublicに用意されています。
バッチ更新用には、
- BasicBatchHandler
プロパティは、
DataSource dataSource,
String sql,
int batchSize
メソッドは、int execute(List list)だけがpublicに用意されています。
Listの各要素はObject[] argsです。
使い方はこんな感じです。
class EmployeeDaoImpl implements EmployeeDao {
private SelectHander getEmployeeHandler_;
EmployeeDaoImpl(SelectHandler getEmployeeHandler) {
getEmployeeHandler_ = getEmployeeHandler;
}
Employee getEmployee(int empno) {
return (Employee) getEmployeeHandler_.execute(
new Object[]{new Integer(empno)});
}
}
SELECT * FROM emp WHERE empno = ?
<component
class="org.seasar.extension.jdbc.impl.BeanResultSetHandler">
examples.entity.Employee.getClass()