14. Firebird 2.5.4
Wir wenden uns nun der Portierung der für Oracle durchgeführten Maßnahmen auf Firebird 2.5.4 zu.
![]() |
14.1. Einrichtung der Arbeitsumgebung
14.1.1. Eclipse-Umgebung
Wir werden mit der folgenden Eclipse-Umgebung arbeiten:
![]() |
Die oben genannten Firebird-Projekte befinden sich im Ordner [<exemples>/spring-database-config\firebird\eclipse].
Hinweis: Führen Sie „[Alt-F5]“ aus, um alle Maven-Projekte neu zu generieren.
14.1.2. Erstellung der Datenbanken
Wie bereits bei Oracle, DB2 und SQL Server müssen wir den Firebird-Treiber JDBC im lokalen Maven-Repository installieren.
![]() |
Die Datei [install.bat] enthält den folgenden Code:
"%M2_HOME%\bin\mvn.bat" install:install-file -Dfile=jaybird-2.2.7.jar -Dpackaging=jar -DgroupId=org.firebirdsql.jdbc -DartifactId=jaybird -Dversion=2.2.7
wobei [%M2-HOME%] das Maven-Installationsverzeichnis ist (siehe Abschnitt 23.2). Nach dieser Installation kann der Firebird-Treiber JDBC in den Dateien [pom.xml] über die folgende Abhängigkeit referenziert werden:
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.2.7</version>
</dependency>
Im weiteren Verlauf erfolgt die Verbindung zu den Firebird-Datenbanken mit den Anmeldedaten [sysdba / masterkey]. Starten Sie Firebird und dessen Client [IBManager] (siehe Abschnitt 23.10). Firebird-Datenbanken zeichnen sich dadurch aus, dass sie in einer einzigen Datei gekapselt sind.
![]() | ![]() |
![]() |
- in [1], die Datei wird in [<exemples>\spring-database-config\firebird\databases\DBPRODUITS.GDB] gefunden;
![]() |
- Wie bei Oracle werden die Primärschlüssel mithilfe von Sequenzen generiert.
Auf die gleiche Weise wird die Datenbank [dbproduitscategories] geladen, die sich unter [<exemples>\spring-database-config\firebird\databases\DBPRODUITSCATEGORIES.GDB] befindet
![]() |
Führen Sie nun die Konfigurationen aus:
- [spring-jdbc-generic-01.IntroJdbc01];
- [spring-jdbc-generic-01.IntroJdbc02];
- [spring-jdbc-generic-03.JUnitTestDao1];
- [spring-jdbc-generic-03.JUnitTestDao2];
- [spring-jdbc-generic-04.JUnitTestDao];
- [spring-jpa-generic-JUnitTestDao-openjpa] ;
Sie müssen alle erfolgreich sein.
14.2. Konfiguration der Schicht JDBC
![]() | ![]() |
Das Projekt [firebird-config-jdbc] konfiguriert die Schicht [JDBC] der folgenden Testarchitektur:
![]() |
Das Projekt entspricht dem Konfigurationsprojekt [oracle-config-jdbc] der Schicht JDBC des SGBD MySQL (siehe Abschnitt 10.2). Wir stellen hier nur die Änderungen vor:
Die Datei [pom.xml] importiert den Firebird-Treiber JDBC:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>dvp.spring.database</groupId>
<artifactId>generic-config-jdbc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>configuration generic jdbc</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.3.RELEASE</version>
</parent>
<dependencies>
<!-- variable Abhängigkeiten ********************************************** -->
<!-- Treiber JDBC für SGBD -->
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.2.7</version>
</dependency>
<!-- erforderlich für den Firebird-Treiber -->
<dependency>
<groupId>javax.resource</groupId>
<artifactId>connector-api</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
<version>3.5.2</version>
</dependency>
<!-- konstante Abhängigkeiten ********************************************** -->
...
</dependencies>
...
</project>
- Zeilen 18–22: den Firebird-Treiber JDBC;
- Zeilen 24–33: die erforderlichen Abhängigkeiten für den Firebird-Treiber JDBC;
Die zweite Änderung betrifft die Klasse [ConfigJdbc], die die Zugangs-IDs für die Datenbanken definiert:
// Verbindungsparameter
public final static String DRIVER_CLASSNAME = "org.firebirdsql.jdbc.FBDriver";
public final static String URL_DBPRODUITS = "jdbc:firebirdsql:localhost/3050:<exemples>/SPRING-DATABASE-CONFIG/FIREBIRD/DATABASES/DBPRODUITS.GDB";
public final static String USER_DBPRODUITS = "sysdba";
public final static String PASSWD_DBPRODUITS = "masterkey";
public final static String URL_DBPRODUITSCATEGORIES = "jdbc:firebirdsql:localhost/3050:<exemples>/SPRING-DATABASE-CONFIG/FIREBIRD/DATABASES/DBPRODUITSCATEGORIES.GDB";
public final static String USER_DBPRODUITSCATEGORIES = "sysdba";
public final static String PASSWD_DBPRODUITSCATEGORIES = "masterkey";
- Zeilen 3 und 6: Hier müssen die genauen Pfade der beiden Datenbanken angegeben werden;
Die dritte Änderung, die vorgenommen werden kann, betrifft die maximale Anzahl von Parametern, die ein [PreparedStatement] unterstützen kann:
// maximale Anzahl von Parametern eines [PreparedStatement]
public final static int MAX_PREPAREDSTATEMENT_PARAMETERS = 1000;
Der Test [JUnitTestPushTheLimits] generiert SQL-Aufträge für 5.000 Produkte, die wiederum [PreparedStatement]-Dateien mit 5.000 Parametern erzeugen. MySQL hatte diesen Wert unterstützt. Firebird hingegen nicht.
Die vierte Änderung betrifft ein reserviertes Wort in Firebird-config-jdbc: PASSWORD. Die Spalte [USERS.PASSWORD] wurde daher in [USERS.PASSWD] umbenannt:
public final static String TAB_USERS_PASSWORD = "PASSWD";
public static final String SELECT_USER_BYLOGIN = "SELECT u.ID as u_ID, u.VERSIONING as u_VERSIONING, u.NAME as u_NAME,u.LOGIN as u_LOGIN,u.PASSWD as u_PASSWORD FROM USERS u WHERE u.LOGIN= :login";
14.3. Konfiguration der Schicht JPA OpenJpa
![]() | ![]() |
Das Projekt [firebird-config-jpa-openjpa] konfiguriert die Schicht [JPA] der Testarchitektur:
![]() |
Das Projekt entspricht dem Konfigurationsprojekt [firebird-config-jpa-openjpa] der Schicht JPA OpenJpa von Oracle SGBD (siehe Abschnitt 10.5). Tatsächlich verwenden beide SGBD-Projekte Sequenzen zur Generierung der Primärschlüssel. Es ist lediglich eine Änderung vorzunehmen. Diese befindet sich in der Definition des Beans [jpaVendorAdapter] der Klasse [ConfigJpa]:
// der Provider JPA
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
OpenJpaVendorAdapter openJpaVendorAdapter = new OpenJpaVendorAdapter();
openJpaVendorAdapter.setShowSql(false);
openJpaVendorAdapter.setDatabase(Database.DEFAULT);
openJpaVendorAdapter.setGenerateDdl(true);
return openJpaVendorAdapter;
}
- Zeile 6: Der Implementierung JPA wird mitgeteilt, dass sie mit einem nicht erkannten SGBD arbeiten wird. Die Implementierung JPA übernimmt dann die Standarddatentypen von SQL.
Nach diesen Änderungen sollte die Ausführung der Konfiguration [spring-jpa-generic-JUnitTestDao-openjpa] erfolgreich sein.
![]() | ![]() |
14.4. Konfiguration der Hibernate-Schicht JPA
![]() | ![]() |
Hinweis: Führen Sie den Befehl „[Alt-F5]“ aus, um alle Maven-Projekte neu zu generieren.
Das Projekt [firebird-config-jpa-hibernate] entspricht dem Projekt [oracle-config-jpa-hibernate] (Absatz 10.4) und weist dieselben Änderungen auf, die bei der Portierung von [oracle-config-jpa-openjpa] auf das Projekt [firebird-config-jpa-openjpa] (Absatz 10.4) vorgenommen wurden.
Nach Durchführung dieser Änderungen sollte die Ausführung der Konfiguration [spring-jpa-generic-JUnitTestDao-hibernate-eclipselink] erfolgreich sein.
14.5. Konfiguration der Ebene JPA EclipseLink
![]() | ![]() |
Hinweis: Führen Sie [Alt-F5] aus, um alle Maven-Projekte neu zu generieren.
Das Projekt [firebird-config-jpa-eclipselink] entspricht dem Projekt [oracle-config-jpa-eclipselink] (Abschnitt 10.3) und weist dieselben Änderungen auf, die bei der Portierung von [oracle-config-jpa-openjpa] auf das Projekt [firebird-config-jpa-openjpa] (Abschnitt 10.4) vorgenommen wurden.
Nach Durchführung dieser Änderungen sollte die Ausführung der Konfiguration [spring-jpa-generic-JUnitTestDao-hibernate-eclipselink] erfolgreich sein.



















