H2へのDBアクセス
プロトタイプをDB対応するべく、H2DBを導入してみた。まずはpom.xmlに以下を追加。
<!-- pom.xml --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.0.67</version> </dependency>
versionはMavenのセントラルリポジトリ(http://repo1.maven.org/maven2)を見て確認。次にsrc/main/resourcesのjdbc.diconに以下の設定を追加。
<!-- jdbc.dicon --> <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl"> <property name="driverClassName">"org.h2.Driver"</property> <property name="URL">"jdbc:h2:mem:?ignorecase=true"</property> <property name="user">"sa"</property> <property name="password">""</property> </component>
プロトタイプだし永続化させる必要がないので、オンメモリで動作させる。まぁcubby-exmplesにあった設定をそのまま持ってきただけなんだけど。
これでDB導入の準備は出来た。後はTomcatを起動するとH2も同時に起動するはず。なんだけど、正常に動作していることを確認したいので、実際にデータを投入してみて、値が取得出来るか試してみる。cubby-examplesを見るとServletRequestListenerのサブクラスでテーブル作成&データ投入をしていたのでそれを真似てみた。ここはそのままなので割愛。
次にDaoを用意。これは当然S2Daoを利用。
// UserDao.java @S2Dao(bean=User.class) public interface UserDao { User selectById(String userId); }
// User.java @Bean(table="tbl_user") public class User { : : }
以上の設定で実際に動作させてみたところ、DBからデータを取得することが出来た。H2って便利だな〜。これでSQLさえ用意しておけば、データ云々を考えなくて済む。良かったよかった。