日本語で紹介されているところは無かったので簡単に紹介。
Springの SimpleJdbTemplateはGenericsのテンプレートでキャストを省略できる。NamedParameterJdbcTemplateは名前付きパラメータのSQLを使用できる。自分的にはキャストが必要なく、名前付きパラメータのSQLを使いたかったので、試行錯誤した結果...
SimpleJdbcTemplate sjt = new SimpleJdbcTemplate(namedParameterJdbcTemplate);
List<Employee> result =
sjt.query(
"select employeeid, name, telnumber from employee where age = :age",
new ParameterizedRowMapper<Employee>() {
Employee rowMap(ResultSet rs, int count) {
// ResultSetから値を拾ってがんばってEmployeeクラスに詰める
}
},
new BeanPropertySqlParameterSource(employee));
見たいなコードで書けることが分かった。
名前付きパラメータを S2Daoのみならず Springでもサポートしてくれたのは非常に価値がある成果だと思います。でもこのコードはねぇ...
もちろん実際には上のコードを Wrap したし、自分でResultSetからがんばって取得するなんて事は面倒過ぎてしていません。そこはcommons DBUtilsの出番だと思います。
最近のコメント