IBATIS

Apache iBATIS
開発元 Apacheソフトウェア財団
初版 2001年 (23年前) (2001)
最新版
3.0 (Java), 1.6.2/1.9.2 (.Net)
プラットフォーム クロスプラットフォーム
対応言語 Java, .NET, Ruby
サポート状況 活動停止(MyBatisに移行)
種別 永続性フレームワーク
ライセンス Apache License 2.0
公式サイト http://ibatis.apache.org
テンプレートを表示

iBATIS は、SQLクエリを POJO (Plain Old Java Object) にマッピングする永続性フレームワークである。SQLクエリはXMLファイルに置くことで一旦アプリケーションと分離される。検索結果のオブジェクトのマッピングは自動的か半自動的に行う。

iBATIS の基本となる考え方は、SQLクエリをXMLファイルに置くことで、関係データベースにアクセスする際に必要となる大量のJavaコードを大幅に減らすことである。

例えば、データベースに PRODUCT (PRD_ID: INTEGER, PRD_DESCRIPTION: VARCHAR) という表があるとし、Javaのオブジェクト com.example.Product (id: int, description: String) があるとする。Product POJO の中に特定の PRD_IDPRODUCT の内容を格納するには、以下を XML SQL マップに挿入する。

 <select id="getProduct"
 	parameterClass="java.lang.Long"
 	resultClass="com.example.Product">
 		select
 			PRD_ID		as id,
 			PRD_DESCRIPTION	as description
 		from 
 			PRODUCT
 		where 
 			PRD_ID = #value#
 </select>

パラメータオブジェクトを設定して結果オブジェクトに格納するJavaコードは次のようになる。

Product resultProduct = sqlMapClient.queryForObject("getProduct", 123);

#value# はクエリで渡される Long を指す。パラメータがJavaオブジェクトなら、そのオブジェクトのプロパティから得られる値を似たような # 記法を使ってクエリに挿入できる。例えばパラメータクラスが com.example.Product で、それに id というプロパティがある場合、#value# は #id# に置換できる。sqlMapClient は com.ibatis.sqlmap.client.SqlMapClient のインスタンスである。

iBATIS の創始者はJava 5 への失望を表明しており、2006年12月に 2.3.0 をリリースしてから 2.3.1 と 2.3.2 を2008年4月にリリースするまで長い時間を要したのは無関係ではない。

2010年6月16日、公式サイトにてApacheソフトウェア財団での活動中止と、プロジェクトのフォーク、ならびに開発者の移籍がアナウンスされた。新プロジェクトはMyBatisと呼ばれている。

関連項目

外部リンク

  • iBATIS @ Apache Foundation
  • MyBatis
トップレベル
プロジェクト
  • Accumulo(英語版)
  • ActiveMQ
  • Airflow
  • Ambari(英語版)
  • Ant
  • Aries(英語版)
  • Arrow(英語版)
  • Apache HTTP Server
  • APR
  • Avro(英語版)
  • Axis
  • Axis2
  • Beam
  • Bloodhound(英語版)
  • Brooklyn(英語版)
  • Buildr(英語版)
  • Calcite(英語版)
  • Camel(英語版)
  • Cassandra
  • Cayenne(英語版)
  • Chemistry(英語版)
  • CloudStack(英語版)
  • Cocoon
  • Cordova
  • CouchDB
  • cTAKES(英語版)
  • CXF(英語版)
  • Derby
  • Directory(英語版)
  • Drill
  • Druid(英語版)
  • Empire-db(英語版)
  • Felix(英語版)
  • Flex
  • Flink(英語版)
  • Flume(英語版)
  • FreeMaker(英語版)
  • Geronimo
  • Giraph(英語版)
  • Gump(英語版)
  • Hadoop
  • HBase
  • Helix(英語版)
  • Hive
  • Impala(英語版)
  • Jackrabbit(英語版)
  • James
  • Jena(英語版)
  • Jini(英語版)
  • JMeter(英語版)
  • Kafka
  • Kudu(英語版)
  • Kylin(英語版)
  • Lucene
  • Mahout
  • Maven
  • MINA(英語版)
  • mod_perl(英語版)
  • MyFaces(英語版)
  • NetBeans
  • Nutch(英語版)
  • NuttX(英語版)
  • OFBiz(英語版)
  • Oozie(英語版)
  • OpenEJB
  • OpenJPA
  • OpenNLP
  • OpenOffice
  • ORC(英語版)
  • PDFBox(英語版)
  • Parquet(英語版)
  • Phoenix(英語版)
  • POI
  • Pig(英語版)
  • Pinot(英語版)
  • Pivot
  • Qpid(英語版)
  • Roller
  • RocketMQ(英語版)
  • Samza(英語版)
  • ServiceMix(英語版)
  • Shiro(英語版)
  • SINGA(英語版)
  • Sling(英語版)
  • Solr
  • Spark
  • Storm(英語版)
  • SpamAssassin
  • Struts 1
  • Struts 2(英語版)
  • Subversion
  • Apache Superset
  • SystemDS(英語版)
  • Tapestry
  • Thrift
  • Tika(英語版)
  • Tomcat
  • Traffic Server(英語版)
  • Turbine(英語版)
  • UIMA(英語版)
  • Velocity
  • Wicket
  • Xalan
  • Xerces
  • XMLBeans
  • Yetus(英語版)
  • ZooKeeper
ASF logo
Commons
Incubator
  • Apache MXNet(英語版)
  • Apache Taverna(英語版)
その他の
プロジェクト
Attic
  • Abdera(英語版)
  • Apache Apex(英語版)
  • AxKit
  • Beehive(英語版)
  • Bluesky(英語版)
  • iBATIS
  • c++ Standard Library(英語版)
  • Cactus(英語版)
  • Click(英語版)
  • Continuum(英語版)
  • Apache Deltacloud(英語版)
  • Apache Etch(英語版)
  • Excalibur(英語版)
  • Forrest(英語版)
  • Hama(英語版)
  • Harmony
  • HiveMind(英語版)
  • Jakarta
  • Lenya(英語版)
  • Marmotta(英語版)
  • ODE(英語版)
  • Shale
  • Slide(英語版)
  • Shindig
  • Stanbol(英語版)
  • Tuscany(英語版)
  • Wave(英語版)
  • Wink(英語版)
  • XML
ライセンス
  • カテゴリ Category
  • コモンズ Commons
  • 表示
  • 編集