| 開発者 | Apache ソフトウェア財団 |
|---|---|
| 書かれた | Java、.NET、Ruby |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | 永続性フレームワーク |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | ibatis.apache.org |
iBATISは、 SQLデータベースと Java、.NET、Ruby on Rails のオブジェクト間のマッピングを自動化する永続性フレームワークです。Java では、オブジェクトは POJO ( Plain Old Java Objects ) です。マッピングは、SQL ステートメントをXML構成ファイルにパッケージ化することで、アプリケーション ロジックから分離されます。その結果、開発者がJDBCやODBCなどの低レベル API を使用してリレーショナル データベースにアクセスするために必要なコードの量が大幅に削減されます。
Hibernateなどの他の永続性フレームワークでは、ユーザーがオブジェクト モデル (たとえば Java で) を作成し、リレーショナル データベースを自動的に作成して維持することができます。iBATIS は逆のアプローチを採用しています。開発者は SQL データベースから開始し、iBATIS は Java オブジェクトの作成を自動化します。どちらのアプローチにも利点がありますが、開発者が SQL データベース スキーマを完全に制御できない場合は、iBATIS が適しています。たとえば、アプリケーションは、他のソフトウェアで使用されている既存の SQL データベースにアクセスする必要がある場合や、専門のデータベース設計チームがスキーマを作成し、高パフォーマンスのために慎重に最適化した場合など、アプリケーション開発者が完全にスキーマを制御できない新しいデータベースにアクセスする必要がある場合があります。
2010 年 5 月 21 日、開発チームはコードをフォークしてMyBatisという新しいプロジェクトを作成し、そこで新しいリリースを作成しました。その結果、Apache iBATIS プロジェクトは非アクティブになり、2010 年 6 月に Apache Attic に移動されました。
使用法
たとえば、データベース テーブルPRODUCT (PROD_ID INTEGER、PROD_DESC VARCHAR(64) )と Java クラスcom.example.Product (id: int、description: String )があるとします。キーPROD_IDを持つ製品レコードを新しいProduct POJO に読み込むには、次のマッピングを iBATIS XML マッピング ファイルに追加します。
<select id= "getProduct" paramClass= "java.lang.Long" resultClass= "com.example.Product" > PRODUCT
からPROD_ID をIDとして、
PROD_DESC を説明
として選択します。PROD_IDは#値# です。</select>
次のようにして、製品番号 123 の新しい Java Productオブジェクトをデータベースから取得できます。
製品resultProduct = ( Product ) sqlMapClient . queryForObject ( "getProduct" , 123 );
マッピング ファイルの例では、#value#はクエリに渡される長整数値を指します。 パラメータが Java オブジェクトの場合、同様の#表記を使用してそのオブジェクトのプロパティの値をクエリに挿入できます。 たとえば、パラメータ クラスがcom.example.Productというプロパティを持つ である場合id、#value#を に置き換えることができます#id#。sqlMapClientオブジェクトはクラス のインスタンスですcom.ibatis.sqlmap.client.SqlMapClient。
可用性
iBATIS の創設者は Java 5 に対する失望を公に表明していますが、Java 用の iBATIS の新バージョンをリリースし続けています。バージョン 2.3.1 と 2.3.2 は 2008 年 4 月に、バージョン 2.3.3 は 7 月にリリースされました。
このフレームワークは現在、 Java、.NET、Ruby (RBatis) バージョンで利用可能です。jBati プロジェクトは、iBATIS にヒントを得た JavaScript ORMです。
Apache iBator ツールは密接に関連しており、データベースに接続し、そのメタデータを使用して iBATIS マッピング ファイルと Java クラスを生成します。
歴史
2001年に、クリントン・ビギンによってiBATISというプロジェクトが開始されました。当初は暗号化ソフトウェアソリューションの開発に重点が置かれていました。iBATISによってリリースされた最初の製品は、PGPによく似た個人データ暗号化および署名ツールであるSecrets [1]でした。Secretsは完全にJavaで書かれており、オープンソースライセンスの下でリリースされました。
その年、マイクロソフトは、最新の.NET 1.0フレームワークがJavaよりも生産性が高いことを示す論文[2]を発表しました。その目的のために、マイクロソフトは、SunがJavaのベストプラクティス( Java BluePrints )を示すために使用したWebプロジェクトであるSunのWeb「Pet Store」の独自バージョンを構築しました。マイクロソフトは、 .NETはJavaよりも10倍高速で、4倍生産性が高いと主張しました。
2002年にクリントンはJPetStore [3]と呼ばれるアプリケーションを開発し、Javaが.NETよりも生産性が高く、 Microsoftの実装で使用されているものよりも優れたアーキテクチャを実現できることを実証しました。
JPetStore 1.0は大きなインパクトを与え[4]、クリントンが使用したデータベース層はコミュニティの注目を集めました。すぐに、iBATIS DAOとiBATIS SQL Mapsの2つのコンポーネントで構成されるiBATIS Database Layer 1.0プロジェクトが開始されました。
iBATIS 2.0は2004年6月にリリースされました。[5]これは同じ機能を維持しながら完全に再設計されたものでした。クリントンはiBATISの名前とコードをApache Software Foundationに寄贈し、プロジェクトは6年間ASFに留まりました。
最終的に、 Spring Frameworkなどのより優れた DAO フレームワークが利用可能になったため、 iBATIS DAO は非推奨になりました。
2010年5月19日にiBATIS 3.0が公開され、同時に開発チームはGoogle Codeでフレームワークの開発を継続することを決定しました。[6] MyBatisと呼ばれる新しいプロジェクトの下で。
2010 年 6 月 16 日、Apache は iBATIS が廃止され、Apache Attic に移行したことを発表しました。
参照
参考文献
- ^ iBATIS の秘密
- ^ ペットショップでのキャットファイト: J2EE vs. .NET
- ^ 「JPetStore 1.0」(PDF) 。 2013年10月21日時点のオリジナル(PDF)からアーカイブ。 2013年9月8日閲覧。
- ^ TheServerside.com での JPetStore 1.0 の発表
- ^ iBATIS 2.0 の発表
- ^ iBATIS プロジェクト チームが Google Code に移行
文献
外部リンク
- 公式サイト
