14. Firebird 2.5.4
Wir werden nun die Portierung der für Oracle durchgeführten Schritte auf Firebird 2.5.4 behandeln.
![]() |
14.1. Einrichten der Arbeitsumgebung
14.1.1. Eclipse-Umgebung
Wir werden mit der folgenden Eclipse-Umgebung arbeiten:
![]() |
Die oben aufgeführten Firebird-Projekte befinden sich im Ordner [<examples>/spring-database-config\firebird\eclipse].
Hinweis: Drücken Sie [Alt-F5], um alle Maven-Projekte neu zu generieren.
14.1.2. Erstellen der Datenbanken
Wie bereits bei Oracle, DB2 und SQL Server müssen wir den Firebird-JDBC-Treiber 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-JDBC-Treiber in den [pom.xml]-Dateien über die folgende Abhängigkeit referenziert werden:
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.2.7</version>
</dependency>
Ab hier werden Verbindungen zu Firebird-Datenbanken mit den Anmeldedaten [sysdba / masterkey] hergestellt. 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] befindet sich die Datei unter [<examples>\spring-database-config\firebird\databases\DBPRODUITS.GDB];
![]() |
- Wie bei Oracle werden Primärschlüssel mithilfe von Sequenzen generiert.
Auf dieselbe Weise laden wir die Datenbank [dbproduitscategories], die sich unter [<examples>\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 bestehen.
14.2. Konfigurieren der JDBC-Schicht
![]() | ![]() |
Das Projekt [firebird-config-jdbc] konfiguriert die [JDBC]-Schicht der folgenden Testarchitektur:
![]() |
Das Projekt entspricht dem Konfigurationsprojekt [oracle-config-jdbc] für die JDBC-Schicht des MySQL-DBMS (siehe Abschnitt 10.2). Wir stellen hier nur die Änderungen vor:
Die Datei [pom.xml] importiert den Firebird-JDBC-Treiber:
<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>
<!-- dépendances variables ********************************************** -->
<!-- driver JDBC from SGBD -->
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.2.7</version>
</dependency>
<!-- required for Firebird driver -->
<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>
<!-- dépendances constantes ********************************************** -->
...
</dependencies>
...
</project>
- Zeilen 18–22: der Firebird-JDBC-Treiber;
- Zeilen 24–33: die für den Firebird-JDBC-Treiber erforderlichen Abhängigkeiten;
Die zweite Änderung betrifft die Klasse [ConfigJdbc], die die Datenbank-Anmeldedaten definiert:
// paramètres de connexion
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: Sie müssen die genauen Pfade für beide Datenbanken eingeben;
Die dritte Änderung, die vorgenommen werden kann, betrifft die maximale Anzahl von Parametern, die ein [PreparedStatement] unterstützen kann:
// max number of parameters of a [PreparedStatement]
public final static int MAX_PREPAREDSTATEMENT_PARAMETERS = 1000;
Der Test [JUnitTestPushTheLimits] generiert SQL-Anweisungen für 5.000 Produkte, wodurch [PreparedStatement]-Objekte mit 5.000 Parametern erzeugt werden. MySQL unterstützte diesen Wert. Firebird tat dies 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. Konfigurieren der OpenJPA-JPA-Schicht
![]() | ![]() |
Das Projekt [firebird-config-jpa-openjpa] konfiguriert die [JPA]-Schicht der Testarchitektur:
![]() |
Dieses Projekt ähnelt dem Konfigurationsprojekt [firebird-config-jpa-openjpa] für die OpenJPA-JPA-Schicht des Oracle-DBMS (siehe Abschnitt 10.5). Tatsächlich verwenden beide DBMS Sequenzen zur Generierung von Primärschlüsseln. Es ist nur eine Änderung vorzunehmen. Diese betrifft die Definition des Beans [jpaVendorAdapter] in der Klasse [ConfigJpa]:
// the provider JPA
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
OpenJpaVendorAdapter openJpaVendorAdapter = new OpenJpaVendorAdapter();
openJpaVendorAdapter.setShowSql(false);
openJpaVendorAdapter.setDatabase(Database.DEFAULT);
openJpaVendorAdapter.setGenerateDdl(true);
return openJpaVendorAdapter;
}
- Zeile 6: Wir teilen der JPA-Implementierung mit, dass sie mit einem nicht erkannten DBMS arbeiten wird. Die JPA-Implementierung wird dann Standard-SQL-Datentypen verwenden.
Nach diesen Änderungen sollte die Ausführung der Konfiguration [spring-jpa-generic-JUnitTestDao-openjpa] erfolgreich sein.
![]() | ![]() |
14.4. Konfiguration der Hibernate-JPA-Schicht
![]() | ![]() |
Hinweis: Drücken Sie [Alt-F5], um alle Maven-Projekte neu zu generieren.
Das Projekt [firebird-config-jpa-hibernate] entspricht dem Projekt [oracle-config-jpa-hibernate] (Abschnitt 10.4) und weist dieselben Änderungen auf, die zur Portierung des Projekts [oracle-config-jpa-openjpa] auf das Projekt [firebird-config-jpa-openjpa] (Abschnitt 10.4) verwendet wurden.
Mit diesen Änderungen sollte die Ausführung der Konfiguration [spring-jpa-generic-JUnitTestDao-hibernate-eclipselink] erfolgreich sein.
14.5. Konfigurieren der EclipseLink-JPA-Schicht
![]() | ![]() |
Hinweis: Drücken Sie [Alt-F5], 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 zur Portierung des Projekts [oracle-config-jpa-openjpa] auf das Projekt [firebird-config-jpa-openjpa] (Abschnitt 10.4) verwendet wurden.
Mit diesen Änderungen sollte die Ausführung der Konfiguration [spring-jpa-generic-JUnitTestDao-hibernate-eclipselink] erfolgreich sein.



















