Datenbanken
Altova Website: Datenbank-Mapping
Sie können in MapForce Datenbanken sowohl als Datenquelle als auch als Datenziel verwenden.
Die nachstehende Tabelle enthält eine Liste aller unterstützten Datenbanken. Wenn es sich bei Ihrer Altova-Applikation um eine 64-Bit-Version handelt, stellen Sie sicher, dass Sie Zugriff auf die 64-Bit-Datenbanktreiber haben, die für die entsprechenden Datenbank benötigt werden.
Datenbank | Anmerkungen |
---|---|
Apache CouchDB 3.x | NoSQL-Datenbank. Nähere Informationen dazu finden Sie in der CouchDB-Dokumentation. Um zu erfahren, wie Sie mit NoSQL-Datenbanken in MapForce arbeiten, lesen Sie nach unter NoSQL-Datenbanken.
|
Azure CosmosDB | Azure CosmosDB ist eine relationale NoSQL-Vektordatenbank. Informationen zum Herstellen einer Verbindung zu dieser Datenbank finden Sie unter Azure CosmosDB-Verbindung. Information über das Arbeiten mit NoSQL-Datenbanken in MapForce finden Sie unter NoSQL-Datenbanken. Nähere Informationen zur Datenbank finden Sie in den folgenden Artikeln:
•Azure Cosmos BD (Produktseite) •Azure Cosmos DB – Datenbank für das KI-Zeitalter •Dokumentation für Azure CosmosDB
|
Firebird 2.x, 3.x, 4.x | |
IBM DB2 8.x, 9.x, 10.x, 11.x | |
IBM Db2 für i 6.x, 7.4, 7.5 | Logische Dateien werden unterstützt und als Ansichten angezeigt.
|
IBM Informix 11.70 und höher | Informix unterstützt Verbindungen über ADO, JDBC und ODBC. Die Implementierung unterstützt in keiner der Codegenerierungssprachen große Objektdatentypen. Bei Verwendung eines dieser Datentypen erzeugt MapForce (bei der Codegenerierung) eine Fehlermeldung.
|
MariaDB 10 und höher | MariaDB unterstützt native Verbindungen. Es sind keine separaten Treiber erforderlich.
|
Microsoft Access 2003 und höher | Zum Zeitpunkt der Verfassung dieser Dokumentation (Anfang September 2019) gibt es kein Microsoft Access Runtime für Access 2019. Sie können nur dann eine Verbindung von Altova-Produkten zu einer Access 2019-Datenbank herstellen, wenn Microsoft Access 2016 Runtime installiert ist und der Datentyp "Large Number" in der Datenbank nicht verwendet wird.
|
Microsoft Azure SQL-Datenbank | SQL Server 2016 Codebase
|
Microsoft SQL Server 2005 und höher Microsoft SQL Server unter Linux | |
MongoDB 4.x | NoSQL-Datenbank. Nähere Informationen dazu finden Sie in der MongoDB-Dokumentation. Um zu erfahren, wie Sie mit NoSQL-Datenbanken in MapForce arbeiten, lesen Sie nach unter NoSQL-Datenbanken.
|
MySQL 5 und höher | Versionen ab MySQL 5.7 unterstützen native Verbindungen. Es sind keine separaten Treiber erforderlich.
|
Oracle 9i und höher | |
PostgreSQL 8 und höher | PostgreSQL-Verbindungen werden sowohl als native Verbindungen als auch als treiberbasierte Verbindungen über Schnittstellen (Treiber) wie ODBC oder JDBC unterstützt. Für native Verbindungen werden keine Treiber benötigt.
|
Progress OpenEdge 11.6 | |
SQLite 3.x
| SQLite-Verbindungen werden als native, direkte Verbindungen zur SQLite-Datenbankdatei unterstützt. Es sind keine separaten Treiber erforderlich. |
Sybase ASE15, 16 | |
Teradata 16 | Verbindungen werden über ADO.NET, JDBC und ODBC unterstützt.
Wenn durch ein Mapping Daten in eine Datenbanktabelle eingefügt werden, werden datenbankgenerierte ID-Felder nicht unterstützt.
|
Datenbankmappings in verschiedenen Ausführungsumgebungen
Wenn Sie Programmcode anhand eines Mappings generieren, ein Mapping zu einer MapForce Server-Ausführungsdatei kompilieren oder ein Mapping auf FlowForce Server bereitstellen, werden die mit den generierten Dateien gespeicherten Datenbankverbindungsinformationen an die jeweiligen Treiber bzw. an die für die ausgewählte Zielumgebung unterstützten Treiber angepasst (siehe Tabelle unten). Wenn als Mapping-Transformationssprache z.B. Java ausgewählt ist, so werden ADO-Verbindungen in JDBC konvertiert, wenn anhand des Mappings Java-Code generiert wird.
Wenn das Mapping in einer anderen Umgebung als MapForce ausgeführt wird, müssen Sie sicherstellen, dass die Datenbankinformationen auf dem Rechner, auf dem das Mapping ausgeführt wird, sinnvoll sind (So müssen Sie z.B. überprüfen, ob der Datenbanktreiber installiert und der Datenbankpfad korrekt ist und Zugriff auf den Datenbankserver besteht usw.).
Einige Datenbankverbindungen werden in einigen Zielumgebungen nicht unterstützt (siehe Tabelle unten).
Verbindungstyp/Ausführungsumgebung | C# | C++ | Java | MapForce Server auf Windows | MapForce Server auf Linux/Mac |
---|---|---|---|---|---|
ADO | ADO Bridge | Wird beibehalten | Wird in JDBC konvertiert | Wird beibehalten | Wird in JDBC konvertiert |
ADO.NET | Wird beibehalten | Benutzerdefiniert | Wird in JDBC konvertiert | Wird beibehalten | Wird in JDBC konvertiert |
JDBC | Benutzerdefiniert | Benutzerdefiniert | Wird beibehalten | Wird beibehalten | Wird beibehalten |
ODBC | ODBC Bridge | ODBC Bridge | Wird in JDBC konvertiert | Wird beibehalten | Wird in JDBC konvertiert |
Natives PostgreSQL | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Wird beibehalten | Wird beibehalten |
Natives SQLite | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Wird beibehalten | Wird beibehalten |
Tabellenlegende:
•Wird beibehalten bedeutet, dass der Datenbankverbindungstyp (z.B. JDBC) bleibt, wie in MapForce definiert.
•Wird in JDBC konvertiert bedeutet, dass die Datenbankverbindung in eine Datenbankverbindungs-URL für JDBC konvertiert wird.
•ADO Bridge oder ODBC Bridge bedeutet, dass der Verbindungsstring übernommen wird, wie in MapForce definiert, dass aber im generierten Code eine passende Klasse verwendet wird, die als ADO Bridge bzw. ODBC Bridge fungiert (z.B. System.Data.OleDb.OleDbConnection oder System.Data.Odbc.OdbcConnection).
•Benutzerdefiniert bedeutet, dass Sie die Verbindungsinformationen manuell in das Dialogfeld Datenbankverbindungseinstellungen eingeben müssen, damit die Verbindung im generierten Code funktioniert.
Vermeiden potenzieller Probleme im Zusammenhang mit JDBC-Verbindungen in einer Java-Umgebung
Wenn das Mapping über JDBC mit einer Datenbank verbunden wird, stellen Sie sicher, dass der vom Mapping verwendete JDBC-Treiber auf Ihrem System installiert ist. Um die aktuellen JDBC-Einstellungen einer Datenbankkomponente in MapForce zu sehen, doppelklicken Sie auf die Überschrift der Datenbankkomponente. Daraufhin wird das Dialogfeld Komponenteneinstellungen geöffnet. Nähere Informationen finden Sie unter Datenbank-Komponenteneinstellungen und JDBC-Verbindung.
Wenn im Mapping eine Nicht-JDBC-Datenbankverbindung verwendet wird, kann die Verbindung bei der Generierung von Java-Code in eine JDBC-Verbindung umgewandelt werden, um die Kompatibilität mit einer Java-Umgebung zu gewährleisten. Nähere Informationen dazu finden Sie in der obigen Tabelle.
Wenn Sie die generierte Java-Applikation starten, muss eventuell der JDBC-Treiber als "Classpath"-Eintrag zur aktuellen Konfiguration hinzugefügt werden. Andernfalls könnte es bei der Ausführung der Applikation zu einem Fehler wie dem folgenden kommen: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.
In diesem Unterabschnitt werden einige Methoden beschrieben, wie Sie Probleme im Zusammenhang mit JDBC beheben können.
Methode 1: Hinzufügen eines JDBC-Treibers als Abhängigkeit in Eclipse
Wenn Sie mit Eclipse arbeiten, muss ein JDBC-Treiber folgendermaßen als Abhängigkeit hinzugefügt werden:
1.Generieren Sie Java-Code in MapForce und importieren Sie das Projekt, wie unter Generieren, Bauen und Ausführen von Code beschrieben, in Eclipse.
2.Klicken Sie in Eclipse auf die gewünschte Konfiguration (z.B. MappingApplication).
3.Klicken Sie auf dem Register Dependencies auf Classpath entries und anschließend auf Add External JARs.
4.Navigieren Sie zur .jar-Datei Ihres JDBC-Treibers, (z.B. C:\jdbc\mysql\mysql-connector-java-5.1.16-bin.jar).
5.Klicken Sie auf Run, um das Programm mit dem als Abhängigkeit hinzugefügten JDBC-Datenbanktreiber auszuführen.
Methode 2: Hinzufügen des JDBC-Treibers zum Classpath als Testaufgabe in build.xml
Wenn Sie bei der Ausführung der Ant build.xml-Datei einen Fehler im Zusammenhang mit dem JDBC-Treiber erhalten, fügen Sie den JDBC-Treiber in build.xml zum Classpath der Aufgabe test hinzu. Im nachstehenden Codefragment sehen Sie ein Beispiel für eine Ant-test-Aufgabe, die eine Referenz auf die .jar-Datei des JDBC-Treibers enthält (unten gelb markiert).
<target name="test" depends="compile">
<java classpath="C:\codegen\java\mysql_mapping" classname="com.mapforce.MappingConsole" fork="true" failonerror="true">
<classpath>
<pathelement path="${classpath}"/>
<pathelement location="C:\jdbc\mysql\mysql-connector-java-5.1.16-bin.jar"/>
</classpath>
<arg line="${cmdline}"/>
</java>
</target>
Methode 3: Inkludieren des JDBC-Treibers in den Manifest-Abschnitt der Applikation
Wenn Sie JAR-Dateien anhand der generierten Java-Applikation bauen, fügen Sie im manifest-Abschnitt der build.xml Datei eine Referenz zum Datenbanktreiber hinzu. Auf diese Weise stellen Sie sicher, dass die Referenz zum Datenbanktreiber nach Erstellung des Projekts in der manifest-Datei (MANIFEST.MF) vorhanden ist.
Um die Datenbankreferenz zur manifest-Datei hinzuzufügen, gehen Sie folgendermaßen vor:
1.Suchen Sie in der build.xml-Datei das Element manifest.
2.Fügen Sie ein neues Attribut namens attribute hinzu, wobei das Attribute name Class-Path und das Attribut value der Name der .jar-Datei ist. So könnte die aktualisierte manifest-Datei für MySQL 5.1.16 z.B. folgendermaßen aussehen (Beachten Sie die gelb markierte Zeile):
<manifest file="C:\codegen\java\mysql_mapping/META-INF/MANIFEST.MF" mode="replace">
<attribute name="Created-By" value="MapForce 2025"/>
<attribute name="Main-Class" value="com.mapforce.MappingConsole"/>
<attribute name="Class-Path" value="mysql-connector-java-5.1.16-bin.jar"/>
</manifest>
3.Kopieren Sie die JAR-Datei des JDBC-Treibers in den Ordner, der die JAR-Datei der generierten Applikation enthält.