2012-04-22 5 views
5

Ich versuche SQLite mit dem Playframework arbeiten, aber bisher kein Glück.Playframework 2 SQLite

Ich habe heruntergeladen sqlitejdbc-v056.jar und legte es in den lib-Ordner.

Ich änderte dann die application.conf:

db.driver=org.sqlite.JDBC 
db.url="jdbc:sqlite:/db/geolookup.sqlite" 
db.default.user=sa 
db.default.password=sa 

ich einen Ordner db erstellt und in sie meine sqlite db fallen.

Jetzt beginne ich mit Spiel laufen spielen

Alles scheint in Ordnung zu kompilieren, aber wenn ich die URL nennen: http://127.0.0.1:9000

ich die folgende Fehlermeldung erhalten:

driver.url hat STRING eher Typ als OBJECT mit der folgenden Zeile highlited:

db.driver=org.sqlite.JDBC 

Was bin ich?

+0

Haben Sie versucht mit 'db.driver =" org.sqlite.JDBC "'? –

+3

Als Randnotiz sollten Sie ein JAR nicht direkt in den lib-Ordner kopieren, sondern die Bibliothek als Abhängigkeit hinzufügen. Dazu bearbeiten 'Application.build' und fügen Sie den folgenden Eintrag in die' appDependencies' Liste: ' "org.xerial" % "SQLite-jdbc" % "3.7.2"' (ersetzen die Version mit der, die Sie verwenden möchten) Sie können dies für jede Abhängigkeit, die Sie benötigen, die erste Zeichenfolge ist die GroupId, die zweite die ArtefactId und die letzte die Version. Beim nächsten Server Neustart, Play! wird die Abhängigkeit für Sie auflösen und herunterladen. – christopheml

Antwort

10

versuchen Sie dies:

db.default.driver="org.sqlite.JDBC" 
db.default.url="jdbc:sqlite:/home/tex/dbtest" 
db.default.user="sa" 
db.default.password="" 

Beachten Sie, dass der Ordner des db muss ein absoluter Pfad sein!

(BTW: mit dieser Konfiguration der Anwendung gestartet, aber wenn ich versuche, um die Entwicklung führen Sie es eine Ausnahme auslöst, ich denke, das ist ein „Dialekt“ Problem ist, ...)

this helps ...

+1

Danke, das hat geholfen, eigentlich hatte ich nicht den Standard im Treiber- und URL-Teil. Über die Evolution Sache, lese ich, dass es einen Dialekt Jar für SQLite gibt, den Sie herunterladen können und dann soll es funktionieren ... – PWFraley

+0

Hallo, ich habe dieses Dialekt-Problem, wissen Sie, wo ist dieses Glas, das es beheben ? – Arruda

+0

Es muss * nicht * ein absoluter Pfad sein. Wenn Sie nur das führende '/' entfernen, wird es z., 'jdbc: sqlite: relativer/Pfad/test.db' – dcastro

1

Sie verwenden wahrscheinlich die falsche Methode, um die Daten aus der Konfiguration zu erhalten. Von Ihrem Fehler nehme ich Sie es wie folgt verwendet werden:

configuration.getConfig("db.driver") 

Aber diese Methode erwartet ein JSON-Objekt unter dem Pfad „db.driver“. Da im Rahmen der „db.driver“ Pfad Sie eine Zeichenfolge haben, sollten Sie die Daten mit dieser Methode lesen:

configuration.getString("db.driver") 

Dies wird die „eher als OBJECT“ Fehler weg gehen.