Sicherheit & Internet:Internet:Web-Entwicklung

Teil 2: Grails, die PHP-Alternative

Kaum zu glauben, aber damit haben wir tatsächlich bereits die erste Datenbankzugriffsklasse fertiggestellt. Den gesamten Rest übernimmt der Grails-Datenbanklayer GORM (Groovy Object Relational Mapper). Den eigentlichen Zugriff auf die Datenbank, die Erzeugung der SQL-Statements und Generierung der Datenbanktabellen übernimmt nun das Framework für Sie.

Im Hintergrund verrichten dabei bekannte Bibliotheken wie beispielsweise Hibernate ihren Dienst, um den Zugriff auf die Datenbank und die Umsetzung von Objektdaten in flache relationale Strukturen zu realisieren.

Die Verbindungseinstellungen für die jeweiligen Datenbanken können sehr einfach über eine einzige Konfigurationsdatei festgelegt werden. Je nach Umgebung ist es möglich, verschiedene Parameter einzustellen.

Dies ist besonders praktisch, wenn Sie auf Ihrem Entwicklungssystem eine andere Datenbank einsetzen, als auf dem Produktivsystem. Das folgende Listing zeigt ein Beispiel hierfür.

development {
dataSource {
dbCreate = "create-drop" // one
of 'create', 'create-drop','update'
url = "jdbc:hsqldb:mem:devDB"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost/
databasename"
}
}

Selbstverständlich stehen durch die GORM-Schicht noch viele weitere Funktionen zur Verfügung. Fremdschlüsselbeziehungen, Validierung, Sets, Default-Werte, Vererbung und vieles andere mehr, sind mit einfachen Mitteln realisierbar.

Das folgende Listing zeigt beispielsweise die Definition einer Viele-zu-Viele-Beziehung zwischen zwei Klassen und die Festlegung von Validatoren für mehrere Tabellenfelder.

class User {
static belongsTo = Project
static hasMany = [projects:
Project]
String userid
String password
String email
static constraints = {
userid(unique:true,
length:5..15)
password: (matches:/[wd]+/,
length:6..15)
email(email:true)
}
}
class Project {
static hasMany = [users:User]
String name
}

Dieses kleine Beispiel zeigt bereits, was die Model-Schicht von Grails leisten kann. So wird die Viele-zu-Viele-Beziehung auf Datenbankebene automatisch über eine Kreuzreferenztabelle aufgelöst und bei Abfragen die notwendigen SQL-Joins automatisch vorgenommen.

Grails unterstützt von Haus aus eine ganze Reihe von Datenbanken, darunter alle populären Datenbank-Server- Systeme wie MySQL, MS SQL, Oracle, DB2, Postgre SQL oder auch SAP DB. Für nicht offiziell unterstützte Datenbanken, stehen oftmals Community-Treiber zur Verfügung, sodass auch der Zugriff auf Exoten möglich wird.

View

Der Zugriff auf eine Datenquelle ist natürlich nur die halbe Miete. Die gelesenen Informationen müssen dem Benutzer selbstverständlich auch aufbereitet dargestellt werden. Grails bietet eine Reihe von Hilfsmitteln, die die Erstellung von Seiten und Inhalten vereinfachen.

Die sogenannten Groovy Server Pages (GSP) sind für die Aufbereitung der Daten verantwortlich, die vom Controller zur Verfügung gestellt werden. Ähnlich wie bei anderen Skriptsprachen wie PHP oder den Java Server Pages (JSP) wird hier HTML-Quellcode durch die Verwendung von Grails erzeugt.

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".