iBATIS ist der Name für ein einfaches Daten-Mapping Framework, das unter
dem u.g. Link als Open Source sowohl für die Java- als auch .NET-Plattform
zur Verfügung steht. Da iBATIS zu den leichtgewichtigen Persistenz-Frameworks gehört, eignet es sich gut für die Persistierung von Plain Old Java Objects
(POJO). Mit der Verwendung von iBATIS ist die Möglichkeit gegeben, auf Basis von SQL-Statements zu arbeiten und dennoch die Umwandlung der Objekte
zur Abbildung in einer relationalen Datenbank von einem Framework realisieren zu lassen. iBATIS
besteht im Wesentlichen aus den beiden Persistenz-Layern SQL-Maps sowie Data-Access-Objects.
iBATIS ist daher
kein vollständiger ORM-Mapper wie die ähnlichen Mechanismen von Hibernate, JDO, Oracle TopLink
oder früheren EJB CMP. iBATIS kann integriert in andere Frameworks wie zum Beispiel Spring oder auch als eigenständiges Framework genutzt werden. Ebenfalls steht mit RBatis eine für Ruby
und Ruby on Rails portierte Version zur Verfügung. Für JavaScript existiert ein von iBATIS beeinflusstes Persistenz-Framework.
Das
iBATIS-Mapper-Framework
Das iBATIS
Data Mapper Framework vereinfacht die Abbildung von relationalen Datenbanktabellen
auf Java-Objekte. Insbesondere ist das iBATIS Framework eine interessante Alternative zur
Java Database Connectivity (JDBC). Es implementiert
kein
Object Relational Mapping (ORM). Dazu wird der
Code der Applikation getrennt von dem
Code, der für den Zugriff auf die Datenbank verantwortlich ist. Die SQL-Anfragen werden dabei in einer XML-Datei - den sogenannten SQL-Maps - zusammengefasst und für die Applikation
Data-Access-Objects (DAO) bereit gestellt. Die SQL-Anfragen aus der XML-Datei können so im
Quelltext referenziert werden. Da dabei die
Abbildung von Objekten auf die Tabellen einer relationalen Datenbank durch manuelle Programmierung erfolgt, ordnet man das Persistenz-Framework nicht dem ORM zu. Doch letztendlich
ist iBATIS als Open Source
Software der
Apache Software Foundation einfacher als das ORM-Framework
Hibernate, aber dennoch komfortabler als JDBC. Weitere Features von iBATIS sind
Caching, Lazy Loading oder auch
Join
Fetching, die allesamt zur Optimierung der
Performance von iBATIS beitragen. Zudem unterstützt iBATIS
Transaktionen
über die
Java Transaction API (JTA).
Vorteile von iBATIS
Ein Vorteil von iBATIS ist neben
der einfachen Handhabung die strikte Entkopplung der Applikation von der Datenbank. Das Konzept bewährt sich sicherlich in kleineren Anwendungen. Dabei können nur wirklich benötigte
Daten geladen werden, was sich positiv auf die zur Verfügung stehenden Ressourcen auswirken wird. Zudem erhöht die geringe
Kopplung die
Lesbarkeit des Quell-Codes. Nachteilig ist in diesem Zusammenhang aber auch, dass deutlich mehr Code geschrieben werden muss. Ebenso muss die Entwicklung Datenbank getrieben erfolgen,
was wiederum Einfluss auf das
Objektmodell hat. Ein zentrales Entscheidungskriterium ist auch, dass beim Einsatz von iBATIS Änderungen
am Datenmodell nicht so einfach zu realisieren sind wie zum Beispiel bei Hibernate.