Java Tutorial sagt, es gibt zwei Möglichkeiten, um Datenbank durch JDBC eine Verbindung zu SQLite: mit Driver Klasse (alte, nicht empfohlen) und mit Datasource Klasse.Datasource verbinden mit (Xerial) SQLite-JDBC-Treiber
ich undestand, wie es mit Driver zu tun:
Connection con = DriverManager.getConnection("jdbc:sqlite:mytest.db");
...
Aber ich kann nicht finden, wie Datasource für SQLite durch JDBC. Kann SQLite (oder JDBC-Treiber dafür, ich weiß nicht, wie ich es richtig nenne) mit DataSource überhaupt arbeiten?
ich xerial/sqlite-jdbc Fahrer bin mit SQLite verwenden, um von Java (https://bitbucket.org/xerial/sqlite-jdbc)
Meine beste Vermutung ist, dass ich org.sqlite.SQLiteDataSource Klasse verwenden soll (es kommt in SQLite-jdbc-3.15.1.jar für Xerial SQLite-JDBC-Treiber), aber wie? Und ist es so? Ich denke auch, dass es in Xerial-Treiberdokumenten zu finden ist, aber sie geben nur ein Beispiel dafür, wie man sich mit DriverManager verbindet.
So freundliche Hilfe von Guru Ich frage, dass this Xerial Fahrer/jar nicht unterstützt Datasource-Syntax, um zu bestätigen, oder ein Beispiel zu geben, wie es zu tun, oder alternative Treiber mit Datasource Unterstützung vorzuschlagen (für SQLite von Java) oder Ratschläge sonst ...
JDBC-Treiber-Manager - Der JDBC-Klasse Driver definiert Objekte , die Java-Anwendungen auf einen JDBC-Treiber eine Verbindung herstellen können. DriverManager war traditionell das Rückgrat der JDBC-Architektur. Es ist ziemlich klein und einfach.
Die Standard-Erweiterungspakete javax.naming und javax.sql können Sie verwenden ein Objekt Datasource registriert mit einem Java Naming and Directory Interface ™ (JNDI) Naming Service eine Verbindung mit einem Daten Quelle zu etablieren. Sie können beide Verbindungsmechanismen verwenden, es wird jedoch empfohlen, wenn möglich, ein DataSource-Objekt zu verwenden.
Ich brauchte 'ds.setUrl ("jdbc: sqlite: /path/to/table.sqlite");' zu machen arbeite mit meiner Datenbank. – dauer
@dauer - Sagen Sie, dass 'ds.setDatabaseName ("/path/to/table.sqlite ");' nicht für Sie funktioniert hat? –
Ja, der Befehl setDatabaseName (...) funktioniert nicht für mich, ich habe es gerade noch einmal mit dem vollständigen Pfad und dem relativen Pfad versucht: Ich bekomme immer einen Fehler (https://pastebin.com/uDYXRmHG). – dauer