JDBC-Treiber

datasqill stellt kostenlose JDBC-Treiber zur Verfügung, die frei verwendet werden können. Diese Treiber haben das Ziel, dass man das Modul "Transfer between DBs" zum Lesen von Daten verwenden kann, die eigentlich nicht in einer Datenbank liegen und für die es damit keine JDBC-Treiber gibt. Derzeit sind bereits folgende Treiber implementiert

Alle Treiber verwenden einen SQL-Parser, sodass der SQL Sprachumfang für diese Quellen in etwa gleich ist.

Für den Einsatz für datasqill bieten die Treiber auch Metainformationen (oder Systemtabellen) an. So kann man bei den Datei-basierten JDBC-Treibern im Modul in der Loop-Query Dateien in einem bestimmten Verzeichnis als Metadaten abfragen über sie per Loop-Query iterieren. Das SQL in der Loopquery selektiert somit von den Metadaten (oder Systemtabellen) und das SQL in der Aktion selektiert dann von dem Quellobjekt.

Derzeit unterstützen die meisten Treiber nur Lesen per SQL SELECT-Statement. INSERT, UPDATE und DELETE sind schon in einigen Treibern umgesetzt.

Connection Properties

Beim Öffnen der Treiber können Properties gesetzt werden.

Bei Verwendung mit datasqill werden diese properties im keyfile eingetragen.

Der keyfile besteht aus mehreren Sektionen die mit dem Pipe Symbol getrennt werden. Zwischen den beiden letzten Pipesymbolen kann man Verbindungsparameter eintragen. Die Properties werden hier folgendermaßen angegeben:

verbindungsOption1:dboptionlist={popertyName1=xx,propertyName2=yy}:verbindungsOption3

Hier werden 3 Verbindungsoptionen angegeben (durch Doppelpunkt getrennt).

Die 2. Verbindungsoption dboptionlist definiert die Properties für den Treiber.

In diesem Beispiel wurden 2 Properties definiert (durch Komma getrennt).

Derzeit wird das folgende Property unterstützt:

Name Wert Bedeutung
NullToEmptyStrings empty Wenn der Wert einer Spalte NULL ist, gebe einen leeren String zurück
NullToEmptyStrings null Wenn der Wert einer Spalte ein leerer String ist, gebe NULL zurück
NullToEmptyStrings keep Bei NULL gebe NULL zurück und bei einem leeren String den leeren String

Properties in der JDBC-URL

Manche Clients übergeben nur die JDBC-URL, dazu Benutzer und Passwort. Die datasqill-Treiber lesen weitere Properties dann aus einem Suffix nach dem ersten |:

jdbc:rest:https://api.example.com|spec=/pfad/spec.json,auth=bearer,token=secret

Die Paare sind durch Kommas getrennt. Ein Wert, der ein Komma enthält, steht in doppelten Anführungszeichen. Der Treiber schneidet den Suffix ab, bevor er die Verbindung öffnet. Die Adresse bleibt jdbc:rest:https://api.example.com. Ein Paar, das nicht key=value ist, wird abgelehnt.

Ein Property des Clients ersetzt denselben Schlüssel aus der URL, wenn der Wert des Clients nicht leer ist. Ein leeres Passwort löscht kein Passwort, das hinter | steht. Benutzer und Passwort des Clients haben damit Vorrang.

Andere JDBC-Treiber lesen diesen Suffix nicht. Im Simple Client werden die Properties mit properties(...) übergeben, die URL bleibt unverändert.