ひがやすを技術ブログ

電通国際情報サービスのプログラマ

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()