2014-12-23 12 views
5

Sto provando a creare un database utilizzando Scala e SQLite. Sto usando Slick come libreria per SQLite. Sono stato su Google per ore e ancora non riesco a capire come farlo funzionare. Ho un progetto Eclipse con Slick installato. Sto cercando di instanciare il database conScala Slick e SQLite

val db = Database.forUrl("url",driver = "org.SQLite.Driver") 

Non ho idea di cosa mettere nell'URL. Neanche io sono molto sicuro della parte del guidatore. Dovrei usare quello o funziona anche "scala.slick.driver.SQLiteDriver"? O importa anche?

sono davvero confuso su tutto l'aiuto è apprezzato this.Any

Grazie!

+0

C'è un esempio in questa domanda: http://stackoverflow.com/questions/21320819/slick-sqlite-could-not-instantiate-class- tests-sqlitespec-org-sqlite-jdbc –

risposta

13

JDBC si basa su driver che implementano l'API JDBC e forniscono accesso alle funzionalità di basso livello di utilizzo di determinati database.

Gli URL indicano come comunicare a un driver JDBC a quale database si desidera connettersi. La prima parte dell'URL è sempre jdbc:<driverId>:, dove driverId è il nome specifico che il driver si aspetta di vedere (ad esempio postgresql, mysql o, nel tuo caso sqlite.) Il formato dell'URL dopo che l'ID del driver è specifico per il driver specifico implementazione. Con MySQL e Postgres, dove in genere si connette su TCP al server di database, vedrete un formato simile a questo:

jdbc:mysql://dbserver:dbport/databaseName 

jdbc:postgresql://dbserver:dbport/databaseName 

Ma, dal momento che SQLite è un in-process, database locale, la parte dell'URL dopo l'ID conducente è solo un percorso di file system, in questo modo:

jdbc:sqlite:/home/me/my-db-file.sqlite 
+0

Come abilitare i vincoli di chiave esterna per sqlite. – Varadha31590