Play! MySQL Driver Konfiguration

Wer erste Schritte mit dem Web FrameworkPlay! und Java unternehmen will, dem sei das Tutorial der Play Homepage empfohlen, sehr einfache und gut nachvollziehbare Schritt-für-Schritt Anleitung anhand einer kleinen Webanwendung todolist.

Am Ende des Tutorials wird die Anwendung in die Heroku Cloud deployt. Wer das nun nicht gleich möchte und die Anwendung erst mal lokal gegen eine nicht flüchtige Datenbank verbinden möchte, der lese hier die Beschreibung zur Konfiguration einer MySQL-Datenbank für die Anwendung. Es müssen lediglich der MySQL-JDBC-Treiber in das Play-Projekt geladen und die Datenbankverbindungsparameter konfiguriert werden.

Play! muss mitgeteilt werden, dass das Projekt den Mysql-JDBC-Driver benötigt, deshalb Eintrag in Datei projects/Build.scala vornehmen:
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean,
"mysql"%"mysql-connector-java"%"5.1.18"
)

Die eigentliche MySQL-Treiber Konfiguration wird in der Datei conf/application.conf vorgenommen. Wenn als ORM-Tool ebean verwendet werden soll, dann bei der Gelegenheit gleich den Kommentar vor dem ebean-Eintrag entfernen:

# Ebean configuration
# ~~~~~
# You can declare as many Ebean servers as you want.
# By convention, the default server is named `default`
#
ebean.default="models.*"

...

# DH MySQL DB
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/test1?characterEncoding=UTF-8"
db.default.user="play"
db.default.password="play"

Danach muss das Projekt den MySQL-Treiber erst mal laden, das wird über die play console erledigt: play Befehle reload und update ausführen, der MySQL-Treiber wird per maven-repository in das Projekt geladen.

[myFirstApp] $ reload
[info] Loading project definition from /home/hessen/workspace/myFirstApp/project
[info] Set current project to myFirstApp (in build file:/home/hessen/workspace/myFirstApp/)
[myFirstApp] $ update
[info] Updating {file:/home/hessen/workspace/myFirstApp/}myFirstApp...
[info] downloading http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.18/mysql-connector-java-5.1.18.jar ...
[info] [SUCCESSFUL ] mysql#mysql-connector-java;5.1.18!mysql-connector-java.jar (3152ms)
[info] Done updating.
[success] Total time: 11 s, completed Feb 16, 2013 8:15:01 PM

Das MySQL Datenbankschema sowie Datenbankuser sollten freilich angelegt sein. Als Merker hier das als MySQL root auszuführende SQL:

create database test1;
grant all privileges on test1.* to play@'localhost' identified by play;
flush privileges;

Play bzw. der ORM Persistance Layer avaje ebean legt im Datenbankschema die Datenbankobjekte (Tabellen) dann selbstständig bei Ausführung der Anwendung an. (ggf. wird man beim ersten Aufruf der Webapplikation aufgefordert das Ausführen div. SQL-Statements durch die Anwendung zu bestätigen -> so tun).

Comments are closed.