目次 > 第2章 Server(Rich)版チュートリアル > 2.4 データベースアクセス > 2.4.1 SQLの設定
2.4.1 SQLの設定
Server(Rich)版では、O/RマッピングツールのiBATISを利用したデータベースアクセス機能を提供している。以下に特徴を示す。
- SQL設定ファイル(sqlMap.xml)にSQL文を記述する。
- 挿入(INSERT)や更新(UPDATE)、条件句(WHERE)などのパラメータは、入力バリューオブジェクトに設定する。
- 参照(SELECT)の結果は、出力バリューオブジェクトに設定される。
- SQL設定ファイルはSQLMap定義ファイル(sqlMapConfig.xml)に設定する。
本項では、以下のSQLを設定する。
- UserBeanクラスのユーザIDが「USERTABLE」テーブルに登録されている件数を取得するSELECT文
- UserBeanクラスの属性を「USERTABLE」テーブルに登録するINSERT文
- 「USERTABLE」テーブルのレコードを全件取得するSELECT文
手順
本項では以下の作業が必要になる。
(1) SQL設定ファイルの編集
上記で説明したSQL文を設定する。
なお、入力バリューオブジェクトクラスおよび出力バリューオブジェクトクラスは、ビジネスロジックの入力クラスを流用する。
- “terasoluna-spring-rich-blank/sources/sqlMap.xml”を開き、以下の箇所にSQLの設定を追加する。
<!-- SqlMap定義 --> <sqlMap namespace="user"> <!-- 登録されているユーザの件数を取得する --> <select id="getUserCount" parameterClass="jp.terasoluna.rich.tutorial.service.bean.UserBean" resultClass="java.lang.Integer"> SELECT COUNT (ID) FROM USERTABLE WHERE ID = #id# </select> <!-- ユーザを挿入する --> <insert id="insertUser" parameterClass="jp.terasoluna.rich.tutorial.service.bean.UserBean"> INSERT INTO USERTABLE ( ID ,NAME ,AGE ,BIRTH ) VALUES ( #id# ,#name# ,#age# ,#birth# ) </insert> <!-- 全ユーザを取得する --> <select id="getUserList" resultClass="jp.terasoluna.rich.tutorial.service.bean.UserBean" resultSetType="SCROLL_INSENSITIVE"> SELECT ID ,NAME ,AGE ,BIRTH FROM USERTABLE ORDER BY ID </select> </sqlMap>
発行するSQL文により使用する要素が変わる。以下に代表的な要素を示す。
要素 | 説明 |
select | SELECT文を発行する |
insert | INSERT文を発行する |
update | UPDATE文を発行する |
delete | DELETE文を発行する |
上記で示した要素の属性を以下に示す。
属性 | 説明 |
id | SQLのID。 |
parameterClass | WHERE句で指定する値や、INSERTやUPDATEで挿入・更新する値を持つクラスを指定する。 |
resultClass | SELECT文の結果を格納するクラス。select要素にのみ指定可能。 |
また、WHERE句やINSERT、UPDATE文でパラメータを指定する場合は、入力バリューオブジェクトの属性名を以下のように“#”で囲むこと。
SELECT ID, NAME, AGE, BIRTH FROM USERTABLE WHERE ID = #id#
(2) SQLMap定義ファイルの確認
(1)で編集したSQL設定ファイルは、SQLMap定義ファイルに設定する必要がある。
Server(Rich)版が提供するブランクプロジェクトでは設定済みである。
- “terasoluna-spring-rich-blank\webapps\WEB-INF\sqlMapConfig.xml”を開き、以下の設定がされていることを確認する。
<!-- SqlMapConfig定義 --> <sqlMapConfig> <sqlMap resource="sqlMap.xml"/> </sqlMapConfig>
SQL設定ファイルは複数作成することができ、新規で作成したファイルはSQLMap定義ファイルに設定を追加する。