Zurück zur Skill-Übersicht

Skill-Wissen und Projektmarkt

MyBatis

Freelancer, Projekte, Experten und Wissen rund um MyBatis.

Kategorie

Backend

Quelle

MyBatis

Einordnung

MyBatis Freelancer, Projekte, Experten und Wissen auf jobtic.com

MyBatis gehört zu den gefragtesten Kompetenzen im modernen IT-Projektmarkt. Unternehmen, Recruiter, Projektanbieter und Agenturen suchen kontinuierlich nach qualifizierten IT-Freelancern, Beratern, Entwicklern, Consultants, Administrators, Engineers und Spezialisten mit Erfahrung in MyBatis.

Auf jobtic.com finden Unternehmen und Freelancer eine moderne Plattform für IT-Projekte, Projektvermittlung, Freelancer-Profile, Experten-Suche, Projektakquise und berufliche Vernetzung rund um MyBatis und viele weitere Technologien, Tools, Systeme, Methoden und IT-Bereiche.

Wikipedia

MyBatis

Artikel öffnen

MyBatis (früher iBATIS zusammengesetzt aus „internet“ und englisch abatisVerhau‘) ist ein Open-Source-Persistenz-Framework für Java und das .Net-Framework. Für Ruby und Ruby on Rails ist eine portierte Version namens RBatis verfügbar.[2]

Die Hauptaufgabe von MyBatis ist die Trennung von Datenbankzugriffscode vom restlichen Applikationscode. Dafür werden der Applikation Data-Access-Objects (kurz DAOs) zur Verfügung gestellt und die SQL-Statements in XML-Dateien, sogenannte SQL-Maps, ausgelagert. Damit wird die Zuordnung von Tabellen zu Klassen von der Geschäftslogik 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 für die Abfragen. Somit ist auch die automatische Erstellung eines Datenbankschemas aus der Klassenhierarchie nicht möglich.

Geschichte

Das iBATIS-Projekt wurde von Clinton Begin im Jahre 2001 gegründet. Das ursprüngliche Ziel des Projektes war die Entwicklung von kryptographischer Software, was auch ausschlaggebend für den Teil „batis“ im Projektnamen verantwortlich ist („batis“ steht für „abatis“ – engl. für „Verhau“, eine militärische Verteidigungsanlage). Die erste von MyBatis fertiggestellte Software war „Secrets“, ein Open-Source-Verschlüsselungs- und Signierungstool in Java.

Anfang 2002 erschien ein Microsoft-Artikel, der behauptete.NET wäre 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 Verfügbarkeit neuer Technologien im Bereich Soziale Netzwerke, Versionsverwaltung und Open Source Infrastruktur begründet.[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 für den typischen Gebrauch von MyBatis.[5]

Das Framework gibt es derzeit in unterschiedlichen Versionen für die Programmiersprachen Java und.NET. Für Ruby gibt es eine Portierung namens RBatis. Das jBati-Projekt, ein ORM-Mapper für JavaScript ist von MyBatis inspiriert.[6] Das Apache-Projekt iBator bietet ein Tool für MyBatis – es generiert aus Datenbanken die iBATIS-Mapping-Files.[7]

Funktionalität

Die Hauptfunktionalität von MyBatis ist die Trennung von Datenbankzugriffscode vom restlichen Applikationscode. Die wichtigsten Komponenten dafür sind die Data-Access-Objects, über 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 über die reine Persistenz hinausgehenden Funktionen. Das sind z. B. die Unterstützung für Transaktionen, sowohl lokale als auch globale (d. h. datenbankübergreifende) über JTA und diverse Performanceoptimierungen wie lazy loading, join fetching oder caching.

MyBatis Generator

MyBatis 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) durchgeführt werden können.[8]

Ein Eclipse plugin ist verfügbar.

Beispiel

Es 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 ausführen zu können, muss eine XML-Deskriptordatei vorhanden sein:

  <select id="getKunde" parameterClass="java.lang.Integer" resultClass="beispiel.Kunde">
    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#
  </select>

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 können.

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 müsste 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 wäre nicht nur wesentlich länger, komplexer, fehleranfälliger und schlechter wartbar, sondern wäre auch weniger performant, da hier noch keine der bei MyBatis eingebauten Performanceoptimierungen, wie beispielsweise Connection Pooling, realisiert wurden.

Siehe auch

Literatur

Weblinks

Einzelnachweise

  1. Release 3.5.16. 4. April 2024 (abgerufen am 9. Juli 2024).
  2. RDoc Dokumentation für RBatis
  3. Clinton Begin – Implementing the Microsoft®.NET Pet Shop using Java (PDF; 220 kB)
  4. Ankündigung zum Umstieg auf Google Code auf der iBATIS Homepage
  5. iBATIS Geschichte auf der iBATIS-Website
  6. JBati Homepage
  7. Ibator Seite auf der iBATIS Site
  8. MyBatis Generator
Wikipedia

Dieser Text basiert auf dem Artikel MyBatis aus der freien Enzyklopädie Wikipedia und steht unter der Lizenz Creative Commons CC-BY-SA 3.0 Unported. Eine Liste der Autoren ist in der Wikipedia verfügbar.

MyBatis auf jobtic.com

Backend

Experten finden

jobtic.com verbindet IT-Freiberufler, Selbstständige, Consultants, Projektanbieter, IT-Dienstleister und Unternehmen in einer zentralen IT-Projektbörse für den deutschsprachigen Markt. Die Plattform unterstützt die Suche nach MyBatis Freelancern, MyBatis Projekten, Contracting-Einsätzen, Remote-Projekten, IT-Jobs, Interim-Rollen, technischen Experten und spezialisierten Beratern.

Chancen entdecken

Freelancer profitieren von einer professionellen Präsentation ihrer Expertise im Bereich MyBatis und erhalten Zugriff auf aktuelle Projektangebote, Projektanfragen und neue Karrierechancen im IT-Freelancer-Markt. Durch moderne Such- und Filterfunktionen lassen sich passende Projekte, Auftraggeber, Recruiter und Kontakte schnell identifizieren.

Wissen einordnen

Neben der Projekt- und Expertenplattform bietet jobtic.com umfangreiche Informationen, Hintergründe und Wiki-Inhalte rund um MyBatis. Dazu gehören Grundlagen, Definitionen, Einsatzbereiche, Entwicklungen, Versionen, Methoden, technische Zusammenhänge, Best Practices und aktuelle Marktinformationen zu MyBatis.

Vernetzung stärken

Unsere jobtic-Übersicht zu MyBatis kombiniert Wissensdatenbank, Projektbörse, Freelancer-Verzeichnis, Experten-Suche und Projektmarkt in einer zentralen Plattform. Besucher finden hier sowohl Informationen zu MyBatis als auch passende Freelancer, Berater, Entwickler, Consultants, Administratoren, Support-Spezialisten und aktuelle IT-Projekte mit Bezug zu MyBatis.

Kontakte aufbauen

jobtic.com unterstützt Freelancer und Unternehmen dabei, schneller passende Projekte, Experten und Geschäftskontakte im Bereich MyBatis zu finden. Egal ob Projektakquise, Expertenvermittlung, Freelancer-Suche, Contracting, IT-Consulting oder spezialisierte Projektbesetzung - jobtic.com bietet die passende Plattform für den modernen IT-Projektmarkt.

Zentral vernetzen

Wer nach MyBatis Freelancern, MyBatis Experten, MyBatis Projekten, MyBatis Beratern, MyBatis Consulting, MyBatis Contracting, MyBatis Projektbörse, MyBatis Freelancer-Profilen oder aktuellen Entwicklungen rund um MyBatis sucht, findet auf jobtic.com eine zentrale Anlaufstelle für Wissen, Projekte und professionelle Vernetzung im IT-Umfeld.

Passende Projekte zu MyBatis

Mehr Projekte

Projekte veröffentlichen

Unternehmen können Projekte mit Anforderungen, Laufzeiten, Technologien, Einsatzorten, Remote-Anteilen, Budgetrahmen und Projektbeschreibungen veröffentlichen. Gleichzeitig ermöglicht jobtic.com die gezielte Suche nach verfügbaren MyBatis Spezialisten mit passenden Erfahrungen, Branchenkenntnissen und technischen Fähigkeiten.

Aktuell sind keine sichtbaren Projekte verfügbar.