O/R-Mapping ohne Schnickschnack

Zwischen der Flexibilität reinen SQLs und der Mächtigkeit ausgewachsener O/R-Mapper existiert eine kleine Bibliothek, die es beinahe in das JDK 6 geschafft hätte: EoD SQL (Ease of Development SQL). Die Idee hinter EoD SQL ist so genial wie einfach: Der Nutzer annotiert ein Java-Interface mit SQL-Statements und die Bibliothek liefert mittels eines Java-Reflection-Proxys eine Implementierung dieses Interfaces zur Benutzung:

public interface NutzerMgmt extends BaseQuery {

  @Select("SELECT COUNT(*) FROM USER")
  long ermittleNutzerAnzahl();

}

Folglich die Benutzung :

Connection c = … ;

NutzerMgmt nutzerMgmt = QueryTool.getQuery(c, NutzerMgmt.class);

try {

  long anzahl = nutzerMgmt.ermittleNutzerAnzahl();

} finally {

  nutzerMgmt.close(); // schließt ebenfalls die Connection

}

Möchte man das Gleiche mit reinem SQL erreichen, so ist der Code ungleich komplizierter:

weiterlesen

Refactoring von Datenbankschemas mit Liquibase

Software verändert sich, und mit ihr verändern sich die benötigten Datenstrukturen. Komplexe SQL-Skripte sind meist die Folge. Alternativ dazu existiert ein einfach zu erlernendes, aber mächtiges Werkzeug: Liquibase

„Nichts ist so beständig wie der Wandel“. Dieses oftbenutzte Zitat trifft insbesondere auch auf den Lebenszyklus von Software zu. Es ist nahezu unmöglich, eine Anwendung vollständig auf dem Reißbrett zu entwerfen, sie exakt in der geplanten Form umzusetzen und anschließend nicht mehr verändern zu müssen. Neue ebenso wie sich verändernde Anforderungen erzwingen zu verschiedenen Zeitpunkten im Entwicklungsprozess entweder Ergänzungen oder Änderungen, denen praktisch jeder Teil des Systems unterliegt. Der Begriff „Refactoring“ hat mittlerweile einen festen Platz im Vokabular der Softwareentwickler gefunden und wird durch Entwicklungsumgebungen für gängige Programmiersprachen sehr gut unterstützt.

Während diese Aussage ohne Einschränkung auf die Programmiersprache Java und ihre Werkzeuge (zum Beispiel Eclipse) angewendet werden kann, klafft ausgerechnet in deren näherem Umfeld eine Lücke: Wie werden Änderungen im Domänenmodell auf Schemas relationaler Datenbanken übertragen, ohne bestehende Strukturen und bereits vorhandene Daten zu zerstören? …

Lesen Sie den vollständigen Artikel hier:
Download DatabasePro, Ausgabe 2/2009, S. 92 – 96