2012-04-22 12 views
5

Estoy intentando hacer que SQLite trabaje con el playframework pero hasta ahora no tuve suerte.Playframework 2 SQLite

He descargado sqlitejdbc-v056.jar y lo puse en la carpeta lib.

entonces cambió el application.conf:

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

creé una base de datos de carpetas y deje caer mi db sqlite en ella.

Ahora empiezo jugar con el juego de ejecución

Todo parece compilar bien, pero cuando llamo a la url: http://127.0.0.1:9000

me sale el siguiente error:

driver.url tiene tipo String en vez que OBJETO con la siguiente línea highlited:

db.driver=org.sqlite.JDBC 

¿Qué me falta?

+0

¿Has probado con 'db.driver =" org.sqlite.JDBC "'? –

+3

Como nota al margen, no debe copiar directamente un jar en la carpeta lib, sino agregar la biblioteca como una dependencia. Para ello, edite 'Application.build' y añadir la siguiente entrada al' appDependencies' lista: ' "org.xerial" % "sqlite-JDBC" % "3.7.2"' (reemplazar el versión con la que desea usar) Puede hacer esto para cada dependencia que necesite, la primera cadena es groupId, la segunda es artifactId y la última es la versión. En el siguiente reinicio del servidor, Play! resolverá y descargará la dependencia por usted. – christopheml

Respuesta

10

probar esto:

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

en cuenta que la carpeta de la base de datos debe ser una ruta absoluta!

(Por cierto: con esta configuración se inicia la aplicación, pero cuando trato de ejecutar la evolución que se produce una excepción, creo que esto es un problema de "dialecto" ...)

espero que esto ayude ...

+1

Gracias, eso ayudó, de hecho no tenía el valor predeterminado en la parte del controlador y la url. Sobre la evolución, leí que hay un dialecte jar para sqlite que puedes descargar y luego se supone que funciona ... – PWFraley

+0

hola, estoy teniendo este problema del dialecto, ¿sabes dónde está este frasco que lo arregla? ? – Arruda

+0

No * tiene que ser una ruta absoluta. Si elimina el '/' principal, funcionará, p., 'jdbc: sqlite: relative/path/test.db' – dcastro

1

Probablemente está utilizando el método incorrecto para obtener los datos de la configuración. Desde su error supongo que lo utilice como esto:

configuration.getConfig("db.driver") 

Pero este método espera un objeto JSON debajo de la ruta "db.driver". Desde debajo de la ruta "db.driver" tiene una cadena, debe leer los datos utilizando este método:

configuration.getString("db.driver") 

Esto hará que el error "en lugar de objeto" desaparezca.