Diese Funktionalität ist nur in bestimmten Ausbaustufen verfügbar.

Sie befinden sich hier: EEC > BASIS > Datenquellen > Datenquellobjekte > DatabaseDataSource

DatabaseDataSource

Der Zugriff auf eine relationale Datenbank erfolgt über die DatabaseDataSource:

Die Verbindung zu einer Datenbank wird über die Verbindungs-URL aufgebaut, auch URL-Connection-String genannt.

Für Zugriffe auf externe Datenbanken stehen explizite Eingabefelder für den Benutzernamen und das Passwort zur Verfügung. Das Passwort wird verschlüsselt gespeichert, sodass es für Anwender zu keiner Zeit sichtbar ist.

Hinweis:

Im Feld Verbindungs-URL eingegebene Verbindungen inklusive Benutzername und Passwort stellen ein Sicherheitsrisiko dar, weil diese Daten in der Log-Datei in Klartext erscheinen! Verwenden Sie Benutzername und Passwort nur in den gleichnamigen Eingabefeldern.

Hinweis:

Die Nutzung des jTDS JDBC-Treibers für Microsoft SQL-Datenbankverbindungen ermöglicht die Authentifizierung über Windows Authentication. Dazu ist ggf. die Angabe des Parameters useNTLMv2=true nötig (siehe http://jtds.sourceforge.net/faq.html#urlFormat).

Die folgende Tabelle zeigt Verbindungs-URLs für gängige Datenbanken mit Angabe des Benutzers und des Passworts, da diese Form ebenfalls gültig ist.

Datenbank Verbindungs-URL
Microsoft SQL Server jdbc:jtds:sqlserver://localhost:1433/databasename;user=username;password=password
Microsoft SQL Server mit Instanz jdbc:jtds:sqlserver://localhost:1433/databasename;instance=instanzname;user=username;password=password
hsqldb jdbc:hsqldb:hsql://localhost/xdb;user=user;password=password
Oracle jdbc:oracle:thin:username/password@localhost:1521/orcl
PostgreSQL jdbc:postgresql://localhost:5432/databasename?user=postgres&password=postgres
JDBC-ODBC-Bridge jdbc:odbc:Driver={PostgreSQL Unicode};Server=localhost;port=5432;Database=databasename;UID=postgres;PWD=postgres;

Hinweis:

Unicode-Unterstützung ist nur für URLs möglich, die auf native JDBC-Treiber verweisen. Die JDBC-ODBC-Bridge unterstützt kein Unicode.

Wird die Verbindungs-URL ohne Angabe von Benutzer und Passwort geschrieben, müssen keine Semikola am Ende hinzugefügt werden.

Dann lautet die Verbindungs-URL für hsqldb beispielsweise jdbc:hsqldb:hsql://localhost/xdb.

Die Ergebnisse von Anfragen an externe relationale Datenbanken werden standardmäßig als Strings returniert. Mit der Option Integer, Double und Boolean konvertieren, kann die DatabaseDataSource so eingestellt werden, dass die Datenbank-Spaltentypen der externen relationalen Datenbanken in die primitiven EEC-Datentypen Integer, Double und Boolean konvertiert werden.

Dabei gibt es Besonderheiten je nach Datenbank:

Der JDBC-Standard legt die SQL-Typen und ein Standardmapping auf Java-Typen fest. Der jeweilige JDBC-Teiber legt das Mapping von den nativen Datenbank-Typen auf die JDBC-Typen fest. Letztendlich ist es von der Datenbank und dem JDBC-Treiber abhängig, ob die primitive Typwandlung 100% funktioniert.

Ein Beispiel ist die Definition des Datentyps Bool in PostgreSQL: Über den PostgeSQL-ODBC-Treiber wird der Datentyp Boolean auf java.sql.Types.CHAR gemapped, sodass eine Konvertierung auf den primitive Typ Boolean nicht funktioniert.

Erweiterte Hinweise zu SQL-Anfragen der verschiedenen Datenbanken:

Die verschiedenen unterstützten Datenbanken weisen jeweils Besonderheiten in der Behandlung von Groß-/Kleinschreibung von Spalten und Tabellennamen auf, die im Folgenden für jede Datenbank aufgeführt werden. Am Ende folgt noch eine Empfehlung zur Wahl von Spalten-/Tabellennamen, falls die Datenbank optional gewechselt werden können soll.

Grundlage der Beispiele ist eine Tabelle namens Artikel mit Spalte Artikelnummer, eine Tabelle namens LIEFERANTEN mit Spalte LIEFERANTENNUMMER und eine Tabelle namens kunden mit Spalte kundennummer.

Hinweis:

Die Angaben Verbindungs-URL, Standardtabelle, Benutzername und Passwort können mit Hilfe von EEC-Argumenten überstimmt werden. Die EEC-Argumente werden in der Initialisierungsdatei (z.B. ec.ini) angegeben.

Siehe auch:

Mehr: