第3回:SQLを直接記述できるiBATIS(後編) (2/3)
 |
|
| 前のページ 1 2 3 次のページ |
 |
| データベース定義ファイルの作成 |
次に、データベースの接続情報を定義したデータベースの定義ファイルを作成します。作成したファイルは次のようになります。 データベース定義ファイル(sqlMapsConfig.xml)
 (画像をクリックすると別ウィンドウに拡大図を表示します)
| 要素 | 属性 | 説明 | | setting | useStatement Namespaces | Trueを指定すると、マッピング・ファイルのSQLステートメントを参照する際にネームスペースを付加した名前を指定しなければなりません。デフォルトはfalseです。 | transaction Manager | type | トランザクション管理の実装クラスを指定します。指定できるエイリアスはJDBC、JTA、EXTERNALです。 | | dataSource | type | データソースの実装クラスを指定します。指定できるエイリアスはSIMPLE、DBCP、JNDIです。 | | property | name | プロパティ名を指定します。 | | value | プロパティの値を指定します。 | | sqlMap | resource | マッピング・ファイルのクラスパスを指定します。 |
表2:データベース定義ファイルの要素
|
| DAO定義ファイルの作成 |
次に、DAO定義ファイルを作成します。作成したDAO定義ファイルは以下のようになります。
DAO定義ファイル(dao.xml)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE daoConfig PUBLIC "-//iBATIS.com//DTD DAO Configuration 2.0//EN" "http://www.ibatis.com/dtd/dao-2.dtd">
<daoConfig> <context> <transactionManager type="SQLMAP"> <property name="SqlMapConfigResource" value="sqlMapsConfig.xml" /> </transactionManager> <dao interface="dao.ShainDAO" implementation="dao.ShainDAOImpl" /> <dao interface="dao.BushoDAO" implementation="dao.BushoDAOImpl" /> </context> </daoConfig>
|
| 要素 | 属性 | 説明 | | context | | DAOトランザクションマネージャとDAOが属するコンテキストを定義します。 | transaction Manager | type | DAOトランザクションマネージャのクラスを指定します。指定できるのはJDBC、JTA、EXTERNAL、HIBERNAME、SQLMAPです。 | | property | name | プロパティ名(トランザクションマネージャごとに異なる) | | value | 設定する値(トランザクションマネージャごとに異なる) | | dao | interface | DAOのインタフェースを指定する。 | | implementation | DAOの実装クラスを指定する。 |
表3:DAO定義ファイルの各要素の説明
|
| 内部結合用の処理の追加 |
Abatorによって自動生成されたDAOやマッピング・ファイルは、基本的な処理のみにしか対応していません。そこで、今回は内部結合のための処理を追加します。
Shainクラスの属性にBushoを追加して、属性Busho用のsetter/getterを追加します。Shain用のマッピング・ファイルを修正します。修正した箇所は以下のとおりです。
Shain用マッピング・ファイル(public_SHAIN_SqlMap.xml)修正箇所抜粋
 (画像をクリックすると別ウィンドウに拡大図を表示します) ShainDAOインターフェースに結合用のメソッドを追加します。追加したメソッドは以下のとおりです。
ShainDAOインターフェース(ShainDAO.java)追加メソッド
public Shain selectAllByPrimaryKey(ShainKey key);
次にShainDAOImplクラスで結合用メソッドの実装を行います。実装したメソッドは以下のとおりです。
ShainDAOImplクラス(ShainDAOImpl.java)での結合処理用メソッドの実装
public Shain selectAllByPrimaryKey(ShainKey key) { Shain record = (Shain) queryForObject("public_SHAIN.getShains", key); return record; }
|
前のページ 1 2 3 次のページ
|

|
 |

| 著者プロフィール 株式会社ビーブレイクシステムズ 山之内 弘行 Javaスペシャリスト 前職ではJavaを用いたシステム開発をメインに作業を行う。更なるキャリアアップを目指し、実力次第で上流工程に携われるビーブレイクシステムズに転職。現在はJavaアーキテクトとして活躍中。
|
|
 |
|
 |
|