Seasar2はデフォルトでH2というデータベースを持っており、そのままだとH2でS2JDBCのサンプルを動かすこととなる。
S2JDBCで他のDB(この例ではMySQL)と連携したい場合は、次の設定ファイルを書き換える。
1. src/main/resources/jdbc.dicon
H2の設定をHTMLコメント(<!-- -->)で囲んで無効化し、代わりにMySQLのHTMLコメントを外して有効化する。
MySQLの設定で変更する必要があるのは、次の箇所。
(1) URL
"jdbc:mysql://[位置]:[ポート番号]/[データベース名]"
位置はIPアドレスもしくは名前解決されているマシン名を指定する。
(2) user
データベースのユーザ名。
(3) password
データベースユーザのパスワード。
2. src/main/resources/s2jdbc.dicon
H2の設定をHTMLコメント(<!-- -->)で囲んで無効化し、代わりにMySQLのHTMLコメントを外して有効化する。
動作確認は、次のようにして行う。
(1) データベーステーブルの構成と同じエンティティクラスを作成する。
主キーは@Id、自動採番なら@GeneratedValueアノテーションを忘れずに付ける。
楽観ロックのためのバージョン番号属性は@Versionアノテーションを忘れずに付ける。
(2) S2AbstractService<[エンティティ名]>をextendsしたクラスを作成する。(DAOの実装クラス)
(3) アクションクラスで上記(2)のDAOクラスをインジェクションする。
(@Resourceアノテーションを付けて、private属性としてクラス内に宣言する)
デバッグ実行して、実際にDAO実装クラスがインジェクションされていれば成功。
(4) 上記(2)で作成したDAO実装クラスに、S2JDBCを動作させる次のようなコードを記述し、動作を確認する。
public [エンティティクラス] get(Integer id) {
return select().id(id).getSingleResult();
}
データが正しく取得できていれば成功。
0 件のコメント:
コメントを投稿