www.wikidata.de-de.nina.az
MyBatis fruher iBATIS zusammengesetzt aus internet und englisch abatis Verhau ist ein Open Source Persistenz Framework fur Java und das Net Framework Fur Ruby und Ruby on Rails ist eine portierte Version namens RBatis verfugbar 2 MyBatisBasisdatenEntwickler Apache Software FoundationAktuelle Version 3 5 10 1 23 Mai 2022 Betriebssystem plattformubergreifendProgrammiersprache Java und Net FrameworkKategorie Persistenz FrameworkLizenz Apache License 2 0mybatis orgDie Hauptaufgabe von MyBatis ist die Trennung von Datenbankzugriffscode vom restlichen Applikationscode Dafur werden der Applikation Data Access Objects kurz DAOs zur Verfugung gestellt und die SQL Statements in XML Dateien sogenannte SQL Maps ausgelagert Damit wird die Zuordnung von Tabellen zu Klassen von der Geschaftslogik entkoppelt MyBatis ist kein Object Relational Mapping Framework kurz ORM die Abbildung zwischen objektorientierten Klassen und relationalen Tabellen muss von den Entwicklern selbst vorgenommen werden ebenso das Schreiben der SQL Statements fur die Abfragen Somit ist auch die automatische Erstellung eines Datenbankschemas aus der Klassenhierarchie nicht moglich Inhaltsverzeichnis 1 Geschichte 2 Funktionalitat 3 MyBatis Generator 4 Beispiel 5 Siehe auch 6 Literatur 7 Weblinks 8 EinzelnachweiseGeschichte Bearbeiten nbsp ibatis LogoDas iBATIS Projekt wurde von Clinton Begin im Jahre 2001 gegrundet Das ursprungliche Ziel des Projektes war die Entwicklung von kryptographischer Software was auch ausschlaggebend fur den Teil batis im Projektnamen verantwortlich ist batis steht fur abatis engl fur Verhau eine militarische Verteidigungsanlage Die erste von MyBatis fertiggestellte Software war Secrets ein Open Source Verschlusselungs und Signierungstool in Java Anfang 2002 erschien ein Microsoft Artikel der behauptete NET ware 10 mal schneller und 4 mal produktiver als J2EE Das veranlasste das iBATIS Projekt die Beispielapplikation JPetStore erste Version 1 Juli 2002 zu schreiben und damit die Behauptungen des Artikels zu widerlegen Der dabei verwendete Persistenzlayer die SQL Maps und Data Access Objects erregte das Aufsehen der Open Source Community Daraus entstand das iBATIS Framework das einfach die Zusammenfassung der beiden Teile darstellt 3 Im Laufe des Jahres 2010 zog iBATIS von der Apache Software Foundation nach Google Code um Dieser Umzug wurde mit der Verfugbarkeit neuer Technologien im Bereich Soziale Netzwerke Versionsverwaltung und Open Source Infrastruktur begrundet 4 Dabei wurde auch iBATIS in MyBatis umbenannt Das Projekt steht aber weiterhin unter der Apache Lizenz Heute ist MyBatis nur mehr das Persistenzframework weiterhin bestehend aus den beiden Hauptbestandteilen SQL Maps und Data Access Objects JPetStore fungiert dabei als das offizielle Beispiel fur den typischen Gebrauch von MyBatis 5 Das Framework gibt es derzeit in unterschiedlichen Versionen fur die Programmiersprachen Java und NET Fur Ruby gibt es eine Portierung namens RBatis Das jBati Projekt ein ORM Mapper fur JavaScript ist von MyBatis inspiriert 6 Das Apache Projekt iBator bietet ein Tool fur MyBatis es generiert aus Datenbanken die iBATIS Mapping Files 7 Funktionalitat BearbeitenDie Hauptfunktionalitat von MyBatis ist die Trennung von Datenbankzugriffscode vom restlichen Applikationscode Die wichtigsten Komponenten dafur sind die Data Access Objects uber die die Applikation mit dem Persistenzlayer kommuniziert sowie die SQL Maps die die Datenbankzugriffe entkoppeln Wie die meisten Persistenzframeworks bietet MyBatis noch eine Reihe von uber die reine Persistenz hinausgehenden Funktionen Das sind z B die Unterstutzung fur Transaktionen sowohl lokale als auch globale d h datenbankubergreifende uber JTA und diverse Performanceoptimierungen wie lazy loading join fetching oder caching MyBatis Generator BearbeitenMyBatis beinhaltet einen Code Generator MyBatis Generator MyBatis Generator fragt die Datenbank Tabellen ab und generiert MyBatis artifacts mit denen CRUD Operationen Create Retrieve Update Delete durchgefuhrt werden konnen 8 Ein Eclipse plugin ist verfugbar Beispiel BearbeitenEs sei eine Tabelle KUNDE gegeben die mit folgender SQL Anweisung erstellt worden ist CREATE TABLE KUNDE K ID INTEGER NOT NULL PRIMARY KEY K NAME VARCHAR 128 K STR VARCHAR 128 K ORT VARCHAR 128 K PLZ INTEGER Des Weiteren existiert folgendes POJO package beispiel public class Kunde private int id private String name private String ort private String strasse private int plz Getter und Setter Methoden folgen Um eine Abfrage ausfuhren zu konnen muss eine XML Deskriptordatei vorhanden sein lt select id getKunde parameterClass java lang Integer resultClass beispiel Kunde gt SELECT K ID AS id K NAME AS name K STR AS strasse K ORT AS ort K PLZ AS plz FROM KUNDE WHERE K ID value lt select gt Die Angabe value bezieht sich auf den Integer Wert der bei der Abfrage mitgegeben werden muss Als Parameter kann auch ein Objekt oder eine Map verwendet werden wobei deren Attribute durch die Notation genauso eingebunden werden konnen Die Abfrage wird in Java wie folgt geschrieben SqlMapClient sqlMap SqlMapClientBuilder buildSqlMapClient Resources getResourceAsReader path to my sqlMapConfig xml Kunde kunde Kunde sqlMap queryForObject getKunde 1 System out println kunde Ohne MyBatis musste man um funktional dasselbe zu bewirken in Java den folgenden Code schreiben Connection conn null PreparedStatement ps null ResultSet rs null String sql SELECT K ID AS id K NAME AS name K STR AS strasse K ORT AS ort K PLZ AS plz FROM KUNDE WHERE K ID Kunde kunde conn dataSource getConnection ps conn preparedStatement sql ps setInt 1 id rs ps executeQuery rs next kunde new Kunde kunde setId rs getInt id kunde setName rs getString name kunde setStrasse rs getString strasse kunde setOrt rs getString ort kunde setPlz rs getString plz rs close conn close System out println kunde Dieser Code ware nicht nur wesentlich langer komplexer fehleranfalliger und schlechter wartbar sondern ware auch weniger performant da hier noch keine der bei MyBatis eingebauten Performanceoptimierungen wie beispielsweise Connection Pooling realisiert wurden Siehe auch BearbeitenJava Data Objects Jakarta Persistence API EJB 3 0 Persistierung Spring Framework Serialisierung Hibernate Framework Literatur BearbeitenBegin Clinton Brandon Goodin Larry Meadors iBATIS in Action Manning Greenwich 2007 ISBN 1 932394 82 6 S 384 manning com Weblinks BearbeitenMyBatis Projektseite iBATIS 3 0 User Guide PDF 617 kB englisch Das Ibator SubprojektEinzelnachweise Bearbeiten github com RDoc Dokumentation fur RBatis Clinton Begin Implementing the Microsoft NET Pet Shop using Java PDF 220 kB Ankundigung zum Umstieg auf Google Code auf der iBATIS Homepage iBATIS Geschichte auf der iBATIS Website JBati Homepage Ibator Seite auf der iBATIS Site MyBatis Generator Abgerufen von https de wikipedia org w index php title MyBatis amp oldid 225151812