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

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…