Ibatis-quick-guide
iBATIS-概要
iBATISは、SQLデータベースとJava、.NET、およびRuby on Railsのオブジェクト間のマッピングを自動化する永続化フレームワークです。 SQLステートメントをXML構成ファイルにパッケージ化することにより、マッピングはアプリケーションロジックから分離されます。
iBATISは、POJO(Plain Old Java Objects)の永続化に適した軽量フレームワークおよび永続化APIです。
iBATISはデータマッパーと呼ばれるものであり、クラスプロパティとデータベーステーブルの列の間のパラメーターと結果のマッピングを処理します。
iBATISとHibernateなどの他の永続化フレームワークの大きな違いは、iBATISがSQLの使用を強調していることです。一方、他のフレームワークは通常、Hibernate Query Language(HQL)やEnterprise JavaBeans Query Language(EJB QL)などのカスタムクエリ言語を使用します。
iBATISの設計哲学
iBATISには、次の設計哲学が付属しています-
- シンプルさ- iBATISは、現在入手可能な最も単純な永続化フレームワークの1つであると広く見なされています。
- 高速開発- iBATISは、超高速開発を促進するためにできる限りのことを行います。
- 移植性- iBATISは、Java、Ruby、C#for Microsoft .NETなど、ほぼすべての言語またはプラットフォームに実装できます。
- 独立したインターフェイス- iBATISは、データベースに依存しないインターフェイスとAPIを提供し、アプリケーションの残りの部分が永続性関連のリソースから独立しているようにします。
- オープンソース- iBATISは無料のオープンソースソフトウェアです。
iBATISの利点
iBATISは次の利点を提供します-
- ストアドプロシージャのサポート- iBATISは、SQLをストアドプロシージャの形式でカプセル化するため、ビジネスロジックがデータベースに保持されず、アプリケーションの展開とテストが容易になり、移植性が向上します。
- *インラインSQLをサポート-*プリコンパイラは不要であり、SQLのすべての機能に完全にアクセスできます。
- 動的SQLのサポート- iBATISは、パラメーターに基づいてSQLクエリを動的に構築する機能を提供します。
- * O/RMをサポート-* iBATISは、遅延読み込み、結合フェッチ、キャッシュ、ランタイムコード生成、継承など、O/RMツールと同じ機能の多くをサポートします。
iBATISは、データベース指向アプリケーションの開発中にJAVAプログラミング言語を使用します。 さらに進む前に、手続き型およびオブジェクト指向プログラミングの基本-制御構造、データ構造と変数、クラス、オブジェクトなどを理解していることを確認してください。
JAVAを詳しく理解するには、リンク:/java/index [JAVAチュートリアル]にアクセスしてください。
iBATIS-環境
実際の開発作業を開始する前に、iBATISに適切な環境をセットアップする必要があります。 この章では、iBATISの作業環境をセットアップする方法について説明します。
iBATISのインストール
LinuxマシンにiBATISをインストールするには、次の簡単な手順を実行します-
- Download iBATISから最新バージョンのiBATISをダウンロードします。
- ダウンロードしたファイルを解凍して、バンドルから.jarファイルを抽出し、適切なlibディレクトリに保存します。
- 抽出された.jarファイルでPATHおよびCLASSPATH変数を適切に設定します。
データベースのセットアップ
次の構文を使用して、MySQLデータベースにEMPLOYEEテーブルを作成します-
SqlMapConfig.xmlを作成します
以下を考慮してください-
- JDBCを使用して、データベース testdb にアクセスします。
- MySQL用のJDBCドライバーは「com.mysql.jdbc.Driver」です。
- 接続URLは「jdbc:mysql://localhost:3306/testdb」です。
- ユーザー名とパスワードをそれぞれ「ルート」と「ルート」として使用します。
- すべての操作のSQLステートメントマッピングは、「Employee.xml」で説明されます。
上記の前提に基づいて、次の内容の SqlMapConfig.xml という名前のXML構成ファイルを作成する必要があります。 これは、iBatisに必要なすべての構成を提供する必要がある場所です-
ファイルSqlMapConfig.xmlとEmployee.xmlの両方がクラスパスに存在することが重要です。 とりあえず、Employee.xmlファイルを空のままにして、その内容を後続の章で説明します。
SqlMapConfig.xmlファイルを使用して、次のオプションのプロパティも設定できます-
iBATIS-作成操作
iBATISを使用して作成、読み取り、更新、削除(CRUD)操作を実行するには、テーブルに対応するプレーンオールドJavaオブジェクト(POJO)クラスを作成する必要があります。 このクラスは、データベーステーブルの行を「モデル化」するオブジェクトを記述します。
POJOクラスには、目的の操作を実行するために必要なすべてのメソッドの実装があります。
MySQLに次のEMPLOYEEテーブルがあると仮定します-
従業員POJOクラス
次のようにEmployee.javaファイルにEmployeeクラスを作成します-
テーブル内の個々のフィールドを設定するメソッドを定義できます。 次の章では、個々のフィールドの値を取得する方法について説明します。
Employee.xmlファイル
iBATISを使用してSQLマッピングステートメントを定義するには、<挿入>タグを使用し、このタグ定義内で、データベースでSQL INSERTクエリを実行するためにIbatisInsert.javaファイルで使用される「id」を定義します。
ここで、* parameterClass-*は、要件に基づいて、string、int、float、double、または任意のクラス_object_として値を取ることができます。 この例では、SqlMapクラスの_insert_メソッドを呼び出すときに、Employeeオブジェクトをパラメーターとして渡します。
データベーステーブルでIDENTITY、AUTO_INCREMENT、またはSERIAL列を使用している場合、またはSEQUENCE/GENERATORを定義している場合、<insert>ステートメントで<selectKey>要素を使用して、そのデータベース生成値を使用または返すことができます。
IbatisInsert.javaファイル
このファイルには、Employeeテーブルにレコードを挿入するアプリケーションレベルのロジックがあります-
コンパイルと実行
上記のソフトウェアをコンパイルして実行する手順は次のとおりです。 コンパイルと実行に進む前に、PATHとCLASSPATHが適切に設定されていることを確認してください。
- 上記のようにEmployee.xmlを作成します。
- 上記のようにEmployee.javaを作成し、コンパイルします。
- 上記のようにIbatisInsert.javaを作成してコンパイルします。 *IbatisInsertバイナリを実行してプログラムを実行します。
次の結果が得られ、EMPLOYEEテーブルにレコードが作成されます。
あなたはEMPLOYEE表を確認した場合、それは次の結果を表示する必要があります-
iBATIS-読み取り操作
前の章で、iBATISを使用してテーブルでCREATE操作を実行する方法について説明しました。 この章では、iBATISを使用してテーブルを読み取る方法について説明します。
MySQLには次のEMPLOYEEテーブルがあります-
このテーブルには、次のように1つのレコードのみがあります-
従業員POJOクラス
読み取り操作を実行するには、次のようにEmployee.javaのEmployeeクラスを変更します-
Employee.xmlファイル
iBATISを使用してSQLマッピングステートメントを定義するには、Employee.xmlファイルに<select>タグを追加し、このタグ定義内で、データベースでSQL SELECTクエリを実行するためにIbatisRead.javaファイルで使用される「id」を定義します。
ここでは、SQL SELECTステートメントでWHERE句を使用しませんでした。 次の章では、SELECTステートメントでWHERE句を使用する方法と、そのWHERE句に値を渡す方法を示します。
IbatisRead.javaファイル
このファイルには、Employeeテーブルからレコードを読み取るアプリケーションレベルのロジックがあります-
コンパイルと実行
上記のソフトウェアをコンパイルして実行する手順は次のとおりです。 コンパイルと実行に進む前に、PATHとCLASSPATHが適切に設定されていることを確認してください。
- 上記のようにEmployee.xmlを作成します。
- 上記のようにEmployee.javaを作成し、コンパイルします。
- 上記のようにIbatisRead.javaを作成してコンパイルします。
- IbatisReadバイナリを実行してプログラムを実行します。
次の結果が得られ、レコードは次のようにEMPLOYEEテーブルから読み取られます-
iBATIS-更新操作
前の章で、iBATISを使用してテーブルでREAD操作を実行する方法について説明しました。 この章では、iBATISを使用してテーブル内のレコードを更新する方法について説明します。
MySQLには次のEMPLOYEEテーブルがあります-
このテーブルには、次のように1つのレコードのみがあります-
従業員POJOクラス
udpate操作を実行するには、次のようにEmployee.javaファイルを変更する必要があります-
Employee.xmlファイル
iBATISを使用してSQLマッピングステートメントを定義するには、Employee.xmlに<update>タグを追加し、このタグ定義内で、データベースでSQL UPDATEクエリを実行するためにIbatisUpdate.javaファイルで使用される「id」を定義します。
IbatisUpdate.javaファイル
このファイルには、レコードをEmployeeテーブルに更新するアプリケーションレベルのロジックがあります-
コンパイルと実行
上記のソフトウェアをコンパイルして実行する手順は次のとおりです。 コンパイルと実行に進む前に、PATHとCLASSPATHが適切に設定されていることを確認してください。
- 上記のようにEmployee.xmlを作成します。
- 上記のようにEmployee.javaを作成し、コンパイルします。
- 上記のようにIbatisUpdate.javaを作成してコンパイルします。
- IbatisUpdateバイナリを実行して、プログラムを実行します。
次の結果が得られ、レコードがEMPLOYEEテーブルで更新され、後で同じレコードがEMPLOYEEテーブルから読み取られます。
iBATIS-削除操作
この章では、iBATISを使用してテーブルからレコードを削除する方法について説明します。
MySQLには次のEMPLOYEEテーブルがあります-
このテーブルには次の2つのレコードがあると仮定します-
従業員POJOクラス
削除操作を実行するために、Employee.javaファイルを変更する必要はありません。 最後の章と同じように保管しましょう。
Employee.xmlファイル
iBATISを使用してSQLマッピングステートメントを定義するには、Employee.xmlに<delete>タグを追加し、このタグ定義内で、データベースでSQL DELETEクエリを実行するためにIbatisDelete.javaファイルで使用される「id」を定義します。
IbatisDelete.javaファイル
このファイルには、従業員テーブルからレコードを削除するアプリケーションレベルのロジックがあります-
コンパイルと実行
上記のソフトウェアをコンパイルして実行する手順は次のとおりです。 コンパイルと実行に進む前に、PATHとCLASSPATHが適切に設定されていることを確認してください。
- 上記のようにEmployee.xmlを作成します。
- 上記のようにEmployee.javaを作成し、コンパイルします。
- 上記のようにIbatisDelete.javaを作成してコンパイルします。
- IbatisDeleteバイナリを実行してプログラムを実行します。
次の結果が得られ、ID = 1のレコードがEMPLOYEEテーブルから削除され、残りのレコードが読み取られます。
iBATIS-結果マップ
resultMap要素は、iBATISで最も重要かつ強力な要素です。 iBATIS ResultMapを使用すると、JDBCコーディングを最大90%削減できます。場合によっては、JDBCでさえサポートされていないことを実行できます。
ResultMapsの設計では、単純なステートメントは明示的な結果マッピングをまったく必要とせず、より複雑なステートメントは関係を記述するために絶対に必要なもののみを必要とします。
この章では、iBATIS ResultMapsの簡単な紹介を提供します。
MySQLには次のEMPLOYEEテーブルがあります-
このテーブルには、次の2つのレコードがあります-
従業員POJOクラス
iBATIS ResultMapを使用するために、Employee.javaファイルを変更する必要はありません。 最後の章と同じように保管しましょう。
Employee.xmlファイル
ここでは、Employee.xmlを変更して<resultMap> </resultMap>タグを導入します。 このタグには、<select>タグのresultMap属性でこのresultMapを実行するために必要なidがあります。
IbatisResultMap.javaファイル
このファイルには、ResultMapを使用してEmployeeテーブルからレコードを読み取るアプリケーションレベルのロジックがあります-
コンパイルと実行
上記のソフトウェアをコンパイルして実行する手順は次のとおりです。 コンパイルと実行に進む前に、PATHとCLASSPATHが適切に設定されていることを確認してください。
- 上記のようにEmployee.xmlを作成します。
- 上記のようにEmployee.javaを作成し、コンパイルします。
- 上記のようにIbatisResultMap.javaを作成し、コンパイルします。
- IbatisResultMapバイナリを実行して、プログラムを実行します。
EMPLOYEEテーブルに対する読み取り操作である次の結果が得られます。
iBATIS-ストアドプロシージャ
iBATIS構成を使用して、ストアドプロシージャを呼び出すことができます。 まず、MySQLでストアドプロシージャを作成する方法を理解しましょう。
MySQLには次のEMPLOYEEテーブルがあります-
MySQLデータベースに次のストアドプロシージャを作成しましょう-
EMPLOYEEテーブルには次の2つのレコードがあると考えてみましょう-
従業員POJOクラス
ストアドプロシージャを使用するために、Employee.javaファイルを変更する必要はありません。 最後の章と同じように保管しましょう。
Employee.xmlファイル
ここでは、Employee.xmlを変更して、<procedure> </procedure>および<parameterMap> </parameterMap>タグを導入します。 ここで、<procedure> </procedure>タグには、アプリケーションでストアドプロシージャを呼び出すために使用するIDがあります。
IbatisSP.javaファイル
このファイルには、ResultMapを使用してEmployeeテーブルから従業員の名前を読み取るアプリケーションレベルのロジックがあります-
コンパイルと実行
上記のソフトウェアをコンパイルして実行する手順は次のとおりです。 コンパイルと実行に進む前に、PATHとCLASSPATHが適切に設定されていることを確認してください。
- 上記のようにEmployee.xmlを作成します。
- 上記のようにEmployee.javaを作成し、コンパイルします。
- 上記のようにIbatisSP.javaを作成し、コンパイルします。
- IbatisSPバイナリを実行してプログラムを実行します。
あなたは次の結果を得るでしょう-
iBATIS-ダイナミックSQL
ダイナミックSQLは、iBATISの非常に強力な機能です。 パラメータオブジェクトの状態に基づいてWHERE句の条件を変更する必要がある場合があります。 そのような状況では、iBATISは、SQLの再利用性と柔軟性を強化するために、マップされたステートメント内で使用できる動的SQLタグのセットを提供します。
すべてのロジックは、いくつかの追加タグを使用して.XMLファイルに配置されます。 以下は、SELECTステートメントが2つの方法で機能する例です-
- IDを渡すと、そのIDに対応するすべてのレコードが返されます。 *それ以外の場合、従業員IDがNULLに設定されているすべてのレコードが返されます。
次のように<isNotEmpty>タグを使用して条件を確認できます。 ここでは、渡されたプロパティが空でない場合にのみ条件が追加されます。
従業員のIDや名前を選択できるクエリが必要な場合、SELECTステートメントは次のようになります-
動的SQLの例
次の例は、動的SQLを使用してSELECTステートメントを作成する方法を示しています。 考慮してください、MySQLには次のEMPLOYEEテーブルがあります-
次のように、このテーブルにはレコードが1つだけあるとします-
従業員POJOクラス
読み取り操作を実行するには、次のようにEmployee.javaにEmployeeクラスを用意します-
Employee.xmlファイル
iBATISを使用してSQLマッピングステートメントを定義するには、次の変更された<select>タグをEmployee.xmlに追加し、このタグ定義内で、ダイナミックSQL SELECTクエリを実行するためにIbatisReadDy.javaで使用される「id」を定義しますデータベース。
上記のSELECT文は2つの方法で動作します-
- IDを渡すと、そのIDに対応するレコードが返されます。それ以外の場合は、すべてのレコードが返されます。
IbatisReadDy.javaファイル
このファイルには、従業員テーブルから条件付きレコードを読み取るためのアプリケーションレベルのロジックがあります-
コンパイルと実行
上記のソフトウェアをコンパイルして実行する手順は次のとおりです。 コンパイルと実行に進む前に、PATHとCLASSPATHが適切に設定されていることを確認してください。
- 上記のようにEmployee.xmlを作成します。
- 上記のようにEmployee.javaを作成し、コンパイルします。
- 上記のようにIbatisReadDy.javaを作成してコンパイルします。
- IbatisReadDyバイナリを実行してプログラムを実行します。
次の結果が得られ、EMPLOYEEテーブルからレコードが読み取られます。
_smc.queryForList( "Employee.findByID"、null)_として null を渡して上記の例を試してください。
iBATIS OGNL式
iBATISは、強力なOGNLベースの式を提供して、他のほとんどの要素を排除します。
- ifステートメント
- 選択、いつ、それ以外の場合
- whereステートメント *foreachステートメント
ifステートメント
動的SQLで最もよく行うことは、where句の一部を条件付きで含めることです。 たとえば-
このステートメントは、オプションのテキスト検索タイプの機能を提供します。 タイトルを渡さない場合、すべてのアクティブなブログが返されます。 ただし、タイトルを渡すと、指定された like 条件のタイトルが検索されます。
次のように、複数の if 条件を含めることができます-
選択、タイミング、およびその他のステートメント
iBATISは、Javaのswitchステートメントに似た choose 要素を提供します。 多くのオプションから1つのケースのみを選択するのに役立ちます。
次の例では、タイトルが指定されている場合はタイトルのみで検索し、タイトルが指定されている場合は作成者のみで検索します。 どちらも提供されていない場合は、注目のブログのみが返されます-
whereステートメント
前の例を見て、どの条件も満たされない場合はどうなるかを確認してください。 あなたはこのように見えるSQLで終わるでしょう-
これは失敗しますが、iBATISには1つの簡単な変更で簡単なソリューションがあり、すべてが正常に機能します-
foreachステートメント
foreach要素を使用すると、コレクションを指定し、要素の本体内で使用できるアイテム変数とインデックス変数を宣言できます。
また、開始文字列と終了文字列を指定し、繰り返しの間に配置するセパレータを追加することもできます。 次のように IN 条件を構築できます-
iBATIS-デバッグ
iBATISを使用してプログラムをデバッグするのは簡単です。 iBATISにはログのサポートが組み込まれており、次のログライブラリで動作し、この順序でそれらを検索します。
- ジャカルタコモンズロギング(JCL)。
- Log4J
- JDKロギング
iBATISと共に上記のライブラリのいずれかを使用できます。
Log4Jを使用したデバッグ
ロギングにLog4Jを使用すると仮定します。 続行する前に、次の点をクロスチェックする必要があります-
- Log4J JARファイル(log4j-\ {version} .jar)はCLASSPATHにある必要があります。
- CLASSPATHでlog4j.propertiesを使用できます。
次に、log4j.propertiesファイルを示します。 行の一部はコメント化されていることに注意してください。 追加のデバッグ情報が必要な場合は、コメントを解除できます。
ApacheサイトからLog4Jの完全なドキュメントを見つけることができます-http://logging.apache.org/log4j/[Log4J Documentation]。
iBATISデバッグの例
次のJavaクラスは、JavaアプリケーションのLog4Jロギングライブラリを初期化してから使用する非常に単純な例です。 CLASSPATHにある上記のプロパティファイルを使用します。
コンパイルと実行
まず、コンパイルと実行に進む前に、PATHとCLASSPATHが適切に設定されていることを確認してください。
- 上記のようにEmployee.xmlを作成します。
- 上記のようにEmployee.javaを作成し、コンパイルします。
- 上記のようにIbatisUpdate.javaを作成してコンパイルします。
- 上記のようにlog4j.propertiesを作成します。
- IbatisUpdateバイナリを実行して、プログラムを実行します。
次の結果が得られます。 EMPLOYEEテーブルでレコードが更新され、その後、同じレコードがEMPLOYEEテーブルから読み取られます。
デバッグ方法
上記の例では、* info()*メソッドのみを使用しましたが、要件に応じて次のいずれかのメソッドを使用できます-
iBATIS-休止状態
iBATISとHibernateには大きな違いがあります。 特定のドメインを考えると、両方のソリューションがうまく機能します。 場合にiBATISが提案されています-
- 独自のSQLを作成したいので、それらを維持してもかまいません。
- 環境は、リレーショナルデータモデルによって駆動されます。
- 既存のスキーマおよび複雑なスキーマで作業する必要があります。
環境がオブジェクトモデルによって駆動され、SQLを自動的に生成する必要がある場合は、Hibernateを使用します。
iBATISとHibernateの違い
HibernateとiBATISはどちらも、業界で利用可能なオープンソースのオブジェクトリレーショナルマッピング(ORM)ツールです。 これらの各ツールの使用は、使用しているコンテキストによって異なります。
次の表は、iBATISとHibernateの違いを強調しています-
iBATIS | Hibernate |
---|---|
iBATIS is simpler. It comes in a much smaller package size. | Hibernate generates SQL for you which means you don’t have to spend time on generating SQL. |
iBATIS is flexible. It offers faster development time. | Hibernate is highly scalable. It provides a much more advanced cache. |
iBATIS uses SQL which could be database dependent. | Hibernate uses HQL which is relatively independent of databases. It is easier to change db in Hibernate. |
iBatis maps the ResultSet from JDBC API to your POJO Objets, so you don’t have to care about table structures. | Hibernate maps your Java POJO objects to the Database tables. |
It is quite easy to use stored procedure in iBATIS. | Use of stored procedures is a little difficult in Hibernate. |
HibernateとiBATISはどちらもSPRINGフレームワークから適切なサポートを受けているため、どちらかを選択しても問題はありません。
iBATOR-はじめに
iBATORはiBATISのコードジェネレーターです。 iBATORは、1つ以上のデータベーステーブルをイントロスペクトし、テーブルにアクセスするために使用できるiBATISアーティファクトを生成します。
後で、要件を満たすためにカスタムSQLコードまたはストアドプロシージャを記述できます。 iBATORは次のアーティファクトを生成します-
- SqlMap XMLファイル
- 主キーとテーブルのフィールドを一致させるJavaクラス
- 上記のオブジェクトを使用するDAOクラス(オプション)
iBATORは、スタンドアロンJARファイル、Antタスク、またはEclipseプラグインとして実行できます。 このチュートリアルでは、コマンドラインからiBATIS構成ファイルを生成する最も簡単な方法について説明します。
ダウンロードiBATOR
Eclipse以外のIDEを使用している場合は、スタンドアロンJARをダウンロードします。 スタンドアロンJARには、iBATORを実行するAntタスクが含まれています。または、JavaコードのコマンドラインからiBATORを実行できます。
- zipファイルは、http://people.apache.org/builds/ibatis/ibator/ibator-1.2.1-681.zip [iBATORのダウンロード]からダウンロードできます。
- オンラインドキュメントを確認できます-http://ibatis.apache.org/docs/tools/ibator/[iBATOR Documentation]。
構成ファイルの生成
iBATORを実行するには、次の手順に従ってください-
ステップ1
構成ファイルibatorConfig.xmlを適切に作成して入力します。 少なくとも、指定する必要があります-
- ターゲットデータベースへの接続方法を指定する <jdbcConnection> 要素。
- 生成されたJavaモデルオブジェクトのターゲットパッケージとターゲットプロジェクトを指定する <javaModelGenerator> 要素。
- 生成されたSQLマップファイルのターゲットパッケージとターゲットプロジェクトを指定する <sqlMapGenerator> 要素。
- 生成されたDAOインターフェイスとクラスのターゲットパッケージとターゲットプロジェクトを指定する <daoGenerator> 要素(DAOを生成しない場合は、<daoGenerator>要素を省略できます)。
- 少なくとも1つのデータベース <table> 要素
注意- iBATOR設定ファイルの例については、リンク:/ibatis/ibator_xmlconfig [XML設定ファイルリファレンス]ページを参照してください。
ステップ2
ファイルを便利な場所(たとえば、\ temp \ ibatorConfig.xml)に保存します。
ステップ3
今、次のようにコマンドラインからiBATORを実行します-
設定ファイルを使用して実行するようにiBATORに指示します。 また、既存のJavaファイルを同じ名前で上書きするようにiBATORに指示します。 既存のJavaファイルを保存する場合は、*-overwrite *パラメーターを省略します。
競合がある場合、iBATORは新しく生成されたファイルを一意の名前で保存します。
iBATORを実行した後、標準のiBATIS構成ファイルを作成または変更して、新しく生成されたコードを使用する必要があります。 これについては、次のセクションで説明します。
iBATORを実行した後のタスク
iBATORを実行した後、他のiBATIS構成アーティファクトを作成または変更する必要があります。 主なタスクは次のとおりです-
- SqlMapConfig.xmlファイルを作成または変更します。
- dao.xmlファイルを作成または変更します(iBATIS DAO Frameworkを使用している場合のみ)。
各タスクは以下に詳細に説明されています-
SqlMapConfig.xmlファイルの更新
iBATISは、一般的にSqlMapConfig.xmlという名前のXMLファイルを使用して、iBATISセッションで使用されるデータベース接続、トランザクション管理スキーム、およびSQLマップXMLファイルの情報を指定します。
iBATORは実行環境について何も知らないため、このファイルを作成できません。 ただし、このファイルの一部のアイテムは、iBATORで生成されたアイテムに直接関連しています。
設定ファイル内のiBATOR固有のニーズは次のとおりです-
- ステートメントの名前空間を有効にする必要があります。
- iBATORが生成したSQLマップXMLファイルをリストする必要があります。
たとえば、iBATORがMyTable_SqlMap.xmlというSQLマップXMLファイルを生成し、そのファイルがプロジェクトのtest.xmlパッケージに配置されているとします。 SqlMapConfig.xmlファイルには次のエントリが必要です-
複数のSQL Map XMLファイルがある場合(非常に一般的です)、ファイルは<transactionManager>要素の後に繰り返し<sqlMap>要素を使用して任意の順序でリストできます。
dao.xmlファイルの更新
iBATIS DAOフレームワークは、一般にdao.xmlと呼ばれるxmlファイルによって構成されます。
iBATIS DAOフレームワークは、このファイルを使用して、DAOのデータベース接続情報を制御し、DAO実装クラスとDAOインターフェイスをリストします。
このファイルでは、SqlMapConfig.xmlファイルへのパス、およびiBATORが生成したすべてのDAOインターフェイスと実装クラスを指定する必要があります。
たとえば、iBATORがMyTableDAOというDAOインターフェイスとMyTableDAOImplという実装クラスを生成し、ファイルがプロジェクトのtest.daoパッケージに配置されているとします。
dao.xmlファイルにはこれらのエントリが必要です-
- 注-*この手順は、iBATIS DAOフレームワーク用にDAOを生成した場合にのみ必要です。