Datenbankanbindung mit MyBatis

Was ist MyBatis?

MyBatis ist ein Framework für die Datenbankanbindung, das durch seine Einfachheit besticht. Es unterstützt benutzerdefinierten SQL-Code, Stored Procedures sowie ein fortgeschrittenes Mapping von komplexen Joins und Objektgraphen.

Die SQL-Anweisungen werden vom Entwickler geschrieben und in XML-Dateien gespeichert. MyBatis erstellt daraus automatisch PreparedStatement und verbirgt dazugehörigen JDBC-Code. Die Ergebnisse der SQL-Abfragen werden automatisch in den Objekten abgebildet.

Das Framework kann ein eigenes Transaktionsmanagement für die Operationen an der Datenbank einsetzen oder ein externes von Spring, EJB CMT, etc. nutzen.

MyBatis abstrahiert also von solchen Details der Datenbankkommunikation wie Laden der Treiber, Instanziieren und Managen der Connection, Verwalten der Transaktionen, etc.

Man muss trotzdem im Kopf behalten, dass MyBatis ein leichtgewichtiger SQL-Mapper und kein ORM ist. Somit beinhaltet dieses Framework keine proprietäre Query-Sprache und generiert kein SQL. Genauso wenig befasst es sich mit der Identität der Objekte. MyBatis bildet keinen Objekt-Cache im Sinne von ORM-Mapping. Es cached die Ergebnisse von Abfragen, unabhängig davon ob die Objekte mit der jeweiligen Identität bereits im Speicher vorhanden sind. Weiterlesen..

Waterfalling the Sprint

Eine kleine Bildergeschichte über ein beliebtes Anti-Pattern.

Vermutlich kennt das der ein oder andere: der Sprint geht los und auf dem Tisch liegt eine Anforderung, die eigentlich zu groß und zu unverstanden ist, um umgesetzt zu werden. Da heißt es Zeit sparen und die erst schlechteste Methode wählen, um die User Story doch noch mit ruhigem Gewissen anzufangen. Diese Methode ist oft der Mini-Wasserfall über einen oder mehrere Sprints. Weiterlesen..

Kann man mit UML ein Data-Warehouse modellieren?

Die Unified Modeling Language, kurz UML, ist seit langem ein anerkannter Standard in der Softwareentwicklung, sowohl bei der Anforderungsanalyse als auch in der technischen Detailspezifikation. Dies gilt allerdings nur, wenn man sich in der Welt der operativen IT (IT-Systeme zur Abwicklung des Tagesgeschäftes, meist transaktionsorientiert) bewegt. Schaut man auf dispositive Systeme wie ein Data Warehouse (DWH), das Daten sammelt und Kennzahlen bereitstellt, führt UML bisher ein Schattendasein. Gibt es dennoch die Möglichkeit, UML sinnvoll und nachhaltig in einem DWH-Projekt einzusetzen? Weiterlesen..

TDD erfolgreich missverstehen

Die Debatte über Test-Driven Development ist wieder aufgelebt. Ursache waren diverse provokative Äußerungen von David Heinemeier Hansson (DHH). Daraufhin hat sich Martin Fowler der Sache angenommen und eine durchaus interessante Diskussion mit Kent Beck und David Heinemeier Hansson geführt.

So weit, so positiv. Erwartungsgemäß hat DHH aber auch viel Applaus von Bloggern bekommen, die das Thema im besten Fall nur oberflächlich verstanden haben – von diesen “Hab’ ich doch schon immer gewusst”-Posts habe ich mal exemplarisch einen herausgegriffen, der mir besonders aufgestoßen ist.

Schon sprachlich ist der Post alles andere als gelungen. Es geht los mit dieser kuriosen Begriffsdefinition:

TDD are the initials of Test Driven Development. […] TDD is more than writing tests. TDD is about writing tests first before you write every single component of your project.

Weiterlesen..