Wiki-Quellcode von Database drivers


Zeige letzte Bearbeiter
1 {{figure image="database_driver_de.png"}}
2 Dieser Fehlermeldung erscheint, wenn kein Treiber für die Datenbank installiert ist. Es muss zuerst der entsprechende Treiber für das Datenbankverwaltungssystem installiert werden.
3 {{/figure}}
4
5 Von {{formcycle case="dat"/}} werden keine Datenbanktreiber mehr mit ausgeliefert. Es ist hierdruch möglich, eigene Treiber zu nutzen, welche unabhängig von {{formcycle/}} aktualisiert werden können. Die Treiber müssen jedoch nun für das verwendete Datenbanksystem separat installiert werden. Die Treiber können von der offiziellen Seite des jeweiligen Datenbanksystems heruntergeladen werden:
6
7 * [[Oracle MySQL>>https://dev.mysql.com/downloads/connector/j/||rel="noopener noreferrer" target="_blank"]] (unter Select Opterating System ist Platform Independent auszuwählen)
8 * [[OracleDB>>http://www.oracle.com/technetwork/database/application-development/jdbc/downloads/index.html||rel="noopener noreferrer" target="_blank"]]
9 * [[PostgreSQL>>https://jdbc.postgresql.org/download.html||rel="noopener noreferrer" target="_blank"]]
10 * [[SQLServer>>https://docs.microsoft.com/en-us/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server?view=sql-server-2017||rel="noopener noreferrer" target="_blank"]]
11 * [[MariaDB>>https://mariadb.com/kb/en/library/about-mariadb-connector-j||rel="noopener noreferrer" target="_blank"]]
12
13 Das genaue Vorgehen zur Installation hängt vom verwendeten Server ab. Für den Apache Tomcat wird [[hier>>doc:Formcycle.SystemSettings.TomcatSettings.InstallDBDriver]] die Einrichtung beispielhaft beschrieben.
14
15 == Encoding ==
16
17 In einer Datenbank lässt sich der zu nutzende Zeichensatz einstellen. Für {{formcycle/}} wird empfohlen, einen UTF-8-Zeichensatz zu wählen, der zwischen Groß- und Kleinschreibung unterscheidet, und zwar:
18
19 {{code language="none"}}
20 utf8_bin
21 {{/code}}
22
23 Bei Verwendung eines Zeichensatzen wie //utf8_general_ci// (utf8, case insensitive) kann es zu Problemen kommen, da hier nicht zwischen Groß- und Kleinschreibung unterschieden wird.
24
25 == Hinweise zu MS SQL und Encoding ==
26
27 Für die MS SQL Server-Version 2019 oder höher sollte das Encoding {{code language="none"}}Latin1_General_100_CI_AS_SC_UTF8{{/code}} genutzt werden. In älteren MS SQL Server-Versionen sollte stattdessen {{code language="none"}}Latin1_General_CI_AS{{/code}} als Encoding verwendet werden.
28
29 == Hinweise zu Oracle MySQL ==
30
31 {{figure image="database_mysql_unicode_de.png"}}
32 Konfiguration des Datenbanksystems //Oracle MySQL// mit Unicode. Hier wird die Zeichenkodierung explizit in der {{smallcaps}}Jdbc{{/smallcaps}}-{{smallcaps}}Url{{/smallcaps}} mitgegeben. Im Normalfall ist dies nicht notwendig, die Zeichenkodierung wird automatisch erkannt.
33 {{/figure}}
34
35 Ab Version 8 von Oracle MySQL wird der Zeitzonenname {{smallcaps}}Cest{{/smallcaps}} nicht mehr unterstützt. Standardmäßig übermittelt das Betriebssystem die Zeitzone an die Datenbank. Wird hier dieser Zeitzonenname an Oracle MySQL übertragen, kann keine Verbindung zur Datenbank hergestellt werden. In dem Fall ist es möglich, eine Zeitzone explizit in der {{smallcaps}}Jdbc{{/smallcaps}}-{{smallcaps}}Url{{/smallcaps}} zu übergeben:
36
37 {{code language="text"}}
38 jdbc:mysql://localhost/db?serverTimezone=Europe/Berlin
39 {{/code}}
40
41 Weiterhin kann es in einigen Fällen vorkommen, dass die Zeichenkodierung nicht richtig erkannt wird. Auch hier kann die Zeichenkodierung in der {{smallcaps}}Jdbc{{/smallcaps}}-{{smallcaps}}Url{{/smallcaps}} übergeben werden. Für Unicode zum Beispiel, wenn in der Datenbank die Einstellung //connection collation// auf //utf8_general_ci// gesetzt ist:
42
43 {{code language="text"}}
44 jdbc:mysql://localhost/db?useUnicode=true&characterEncoding=UTF-8
45 {{/code}}
46
47 == Andere Datenbanksysteme ==
48
49 Es ist auch möglich, eine anderes Datenbanksytem wie etwa HSQLDB, Derby oder Informix zu verwenden. Auch hier muss der Datenbanktreiber installiert werden. Hier eine Übersicht über die {{smallcaps}}Jdbc{{/smallcaps}}-{{smallcaps}}Url{{/smallcaps}} und die dazugehörigen Treiberklassen einiger Datenbanksysteme:
50
51 {{table dataTypeAlpha="0-2" preSort="0-asc"}}
52 |=Name|=JDBC-URL|=JDBC-Treiber Klasse
53 | SAP HANA| jdbc:sap:~/~/<dbhost>:30015/|com.sap.db.jdbc.Driver
54 | Informix| jdbc:informix-sqli:~/~/<dbhost>:9088/sysuser:INFORMIXSERVER=hpjp|com.informix.jdbc.IfxDriver
55 | HSQLDB| jdbc:hsqldb:mem:<dbname>| org.hsqldb.jdbc.JDBCDriver
56 | Derby| jdbc:derby:target/tmp/derby/hpjp;databaseName=<dbname>;create=true| org.apache.derby.jdbc.EmbeddedDriver
57 {{/table}}