14. Firebird 2.5.4
We gaan nu over tot de port naar Firebird 2.5.4 van wat er met Oracle is gedaan.
![]() |
14.1. Het opzetten van de werkomgeving
14.1.1. Eclipse-omgeving
We gaan werken met de volgende Eclipse-omgeving:
![]() |
De bovenstaande Firebird-projecten zijn te vinden in de map [<exemples>/spring-database-config\firebird\eclipse].
Opmerking: voer [Alt-F5] uit om alle Maven-projecten opnieuw te genereren.
14.1.2. Databases genereren
Net zoals bij Oracle, DB2 en SQL Server, moeten we de Firebird-driver JDBC in de lokale Maven-repository installeren.
![]() |
Het bestand [install.bat] bevat de volgende 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
waarbij [%M2-HOME%] de installatiemap van Maven is (zie paragraaf 23.2). Na deze installatie kan de Firebird-driver JDBC in de bestanden [pom.xml] worden aangeroepen via de volgende afhankelijkheid:
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.2.7</version>
</dependency>
In het verdere verloop worden de verbindingen met de Firebird-databases tot stand gebracht met de inloggegevens [sysdba / masterkey]. Start Firebird en de bijbehorende client [IBManager] op (zie paragraaf 23.10). Firebird-databases zijn bijzonder in die zin dat ze in één enkel bestand zijn ingekapseld.
![]() | ![]() |
![]() |
- in [1], zal het bestand worden gevonden in [<exemples>\spring-database-config\firebird\databases\DBPRODUITS.GDB];
![]() |
- net als bij Oracle worden de primaire sleutels gegenereerd met behulp van sequenties.
Op dezelfde manier gaat men te werk om de database [dbproduitscategories] te laden, die te vinden is in [<exemples>\spring-database-config\firebird\databases\DBPRODUITSCATEGORIES.GDB]
![]() |
Voer nu de configuraties uit:
- [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] ;
Ze moeten allemaal slagen.
14.2. Configuratie van de laag JDBC
![]() | ![]() |
Het project [firebird-config-jdbc] configureert de laag [JDBC] van de volgende testarchitectuur:
![]() |
Het project is vergelijkbaar met het configuratieproject [oracle-config-jdbc] van de laag JDBC van de SGBD MySQL (zie paragraaf 10.2). We geven hier alleen de wijzigingen weer:
Het bestand [pom.xml] importeert de Firebird-driver 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>
<!-- variabele afhankelijkheden ********************************************** -->
<!-- stuurprogramma JDBC van SGBD -->
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.2.7</version>
</dependency>
<!-- vereist voor de 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>
<!-- constante afhankelijkheden ********************************************** -->
...
</dependencies>
...
</project>
- regels 18-22: de Firebird-driver JDBC;
- regels 24-33: de benodigde afhankelijkheden voor de Firebird-driver JDBC;
De tweede wijziging bevindt zich in de klasse [ConfigJdbc], die de toegangsgegevens voor de databases definieert:
// verbindingsparameters
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";
- regels 3 en 6: hier moeten de exacte paden naar de twee databases worden ingevuld;
De derde wijziging die kan worden aangebracht, betreft het maximale aantal parameters dat een [PreparedStatement] kan ondersteunen:
// maximaal aantal parameters van een [PreparedStatement]
public final static int MAX_PREPAREDSTATEMENT_PARAMETERS = 1000;
De test [JUnitTestPushTheLimits] genereert SQL-opdrachten voor 5000 producten, die op hun beurt [PreparedStatement]-bestanden met 5000 parameters zullen genereren. MySQL kon deze waarde wel aan. Firebird niet.
De vierde wijziging betreft een gereserveerd woord in Firebird-config-jdbc: PASSWORD. De kolom [USERS.PASSWORD] is daarom hernoemd naar [USERS.PASSWD]:
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. Configuratie van de laag JPA OpenJpa
![]() | ![]() |
Het project [firebird-config-jpa-openjpa] configureert de laag [JPA] van de testarchitectuur:
![]() |
Het project is vergelijkbaar met het configuratieproject [firebird-config-jpa-openjpa] van de laag JPA OpenJpa van de Oracle SGBD (zie paragraaf 10.5). Beide SGBD-projecten maken namelijk gebruik van sequenties om de primaire sleutels te genereren. Er hoeft slechts één wijziging te worden aangebracht. Deze bevindt zich in de definitie van de bean [jpaVendorAdapter] van de klasse [ConfigJpa]:
// de provider JPA
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
OpenJpaVendorAdapter openJpaVendorAdapter = new OpenJpaVendorAdapter();
openJpaVendorAdapter.setShowSql(false);
openJpaVendorAdapter.setDatabase(Database.DEFAULT);
openJpaVendorAdapter.setGenerateDdl(true);
return openJpaVendorAdapter;
}
- regel 6: de implementatie JPA wordt geïnformeerd dat deze met een niet-herkende SGBD gaat werken. De implementatie JPA zal dan de standaardgegevenstypen van de SQL overnemen.
Nadat deze wijzigingen zijn doorgevoerd, zou de uitvoering van de configuratie [spring-jpa-generic-JUnitTestDao-openjpa] moeten slagen.
![]() | ![]() |
14.4. Configuratie van de Hibernate-laag JPA
![]() | ![]() |
Opmerking: voer [Alt-F5] uit om alle Maven-projecten opnieuw te genereren.
Het project [firebird-config-jpa-hibernate] is vergelijkbaar met het project [oracle-config-jpa-hibernate] (paragraaf 10.4) en bevat dezelfde aanpassingen die zijn doorgevoerd bij de overzetting van [oracle-config-jpa-openjpa] naar het project [firebird-config-jpa-openjpa] (paragraaf 10.4).
Als deze wijzigingen zijn doorgevoerd, zou de uitvoering van de configuratie [spring-jpa-generic-JUnitTestDao-hibernate-eclipselink] moeten slagen.
14.5. Configuratie van de laag JPA EclipseLink
![]() | ![]() |
Opmerking: voer [Alt-F5] uit om alle Maven-projecten opnieuw te genereren.
Het project [firebird-config-jpa-eclipselink] is vergelijkbaar met het project [oracle-config-jpa-eclipselink] (paragraaf 10.3) met dezelfde aanpassingen die zijn doorgevoerd bij de overzetting van [oracle-config-jpa-openjpa] naar het project [firebird-config-jpa-openjpa] (paragraaf 10.4).
Als deze wijzigingen zijn doorgevoerd, zou de uitvoering van de configuratie [spring-jpa-generic-JUnitTestDao-hibernate-eclipselink] moeten slagen.



















