目次 > 第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文を設定する。
なお、入力バリューオブジェクトクラスおよび出力バリューオブジェクトクラスは、ビジネスロジックの入力クラスを流用する。

  1. “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文により使用する要素が変わる。以下に代表的な要素を示す。

要素説明
selectSELECT文を発行する
insertINSERT文を発行する
updateUPDATE文を発行する
deleteDELETE文を発行する

上記で示した要素の属性を以下に示す。

属性説明
idSQLのID。
parameterClassWHERE句で指定する値や、INSERTやUPDATEで挿入・更新する値を持つクラスを指定する。
resultClassSELECT文の結果を格納するクラス。select要素にのみ指定可能。

また、WHERE句やINSERT、UPDATE文でパラメータを指定する場合は、入力バリューオブジェクトの属性名を以下のように“#”で囲むこと。

SELECT ID, NAME, AGE, BIRTH FROM USERTABLE WHERE ID = #id#

(2) SQLMap定義ファイルの確認

(1)で編集したSQL設定ファイルは、SQLMap定義ファイルに設定する必要がある。
Server(Rich)版が提供するブランクプロジェクトでは設定済みである。

  1. “terasoluna-spring-rich-blank\webapps\WEB-INF\sqlMapConfig.xml”を開き、以下の設定がされていることを確認する。
    <!-- SqlMapConfig定義 -->
    <sqlMapConfig>
      <sqlMap resource="sqlMap.xml"/>
    </sqlMapConfig>
    

SQL設定ファイルは複数作成することができ、新規で作成したファイルはSQLMap定義ファイルに設定を追加する。


次項:2.4.2 ビジネスロジッククラスの作成とDAOの設定

Copyright (C) 2009 NTT DATA CORPORATION