14. Firebird 2.5.4
Şimdi, Oracle ile yapılanların Firebird 2.5.4'e taşınmasına geçiyoruz.
![]() |
14.1. Çalışma ortamının kurulması
14.1.1. Eclipse ortamı
Aşağıdaki Eclipse ortamında çalışacağız:
![]() |
Yukarıdaki Firebird projeleri [<exemples>/spring-database-config\firebird\eclipse] klasöründe bulunur.
Not: Tüm Maven projelerini yeniden oluşturmak için [Alt-F5] komutunu çalıştırın.
14.1.2. Veritabanlarının Oluşturulması
Oracle, DB2 ve SQL Server'da olduğu gibi, Firebird'ün JDBC sürücüsünü yerel Maven deposuna yüklememiz gerekecektir.
![]() |
[install.bat] dosyası aşağıdaki kodu içerir:
"%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
burada [%M2-HOME%], Maven kurulum klasörüdür (bkz. paragraf 23.2). Bu kurulumdan sonra, Firebird'ün JDBC sürücüsü, [pom.xml] dosyalarında aşağıdaki bağımlılıkla referanslanabilir:
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.2.7</version>
</dependency>
Bundan sonra, Firebird veritabanlarına bağlantı [sysdba / masterkey] kimlik bilgileriyle kurulur. Firebird'ü ve [IBManager] istemcisini başlatın (bkz. paragraf 23.10). Firebird veritabanları, tek bir dosya içinde kapsüllenmiş olmaları bakımından özeldir.
![]() | ![]() |
![]() |
- [1]'te, dosya [<exemples>\spring-database-config\firebird\databases\DBPRODUITS.GDB]'te bulunacaktır;
![]() |
- Oracle'da olduğu gibi, birincil anahtarlar sıra numaraları kullanılarak oluşturulur.
Aynı şekilde, [dbproduitscategories] veritabanını yüklemek için de aynı işlem yapılır; bu veritabanı [<exemples>\spring-database-config\firebird\databases\DBPRODUITSCATEGORIES.GDB] konumunda bulunur
![]() |
Şimdi yapılandırmaları çalıştırın:
- [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] ;
Hepsi başarılı olmalı.
14.2. JDBC katmanının yapılandırılması
![]() | ![]() |
[firebird-config-jdbc] projesi, aşağıdaki test mimarisinin [JDBC] katmanını yapılandırır:
![]() |
Bu proje, SGBD MySQL'in JDBC katmanına ait [oracle-config-jdbc] yapılandırma projesine benzemektedir (bkz. paragraf 10.2). Burada yalnızca değişiklikleri sunuyoruz:
[pom.xml] dosyası, Firebird’ün JDBC sürücüsünü içe aktarır:
<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>
<!-- değişken bağımlılıklar ********************************************** -->
<!-- SGBD sürücüsü için JDBC -->
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.2.7</version>
</dependency>
<!-- Firebird sürücüsü için gereklidir -->
<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>
<!-- sabit bağımlılıklar ********************************************** -->
...
</dependencies>
...
</project>
- 18-22. satırlar: Firebird'ün JDBC sürücüsü;
- 24-33. satırlar: Firebird'ün JDBC sürücüsü için gerekli bağımlılıklar;
İkinci değişiklik, veritabanlarına erişim kimliklerini tanımlayan [ConfigJdbc] sınıfındadır:
// bağlantı parametreleri
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";
- 3. ve 6. satırlar: iki veritabanının tam yollarını girmek gerekir;
Yapılabilecek üçüncü değişiklik, bir [PreparedStatement]'in destekleyebileceği maksimum parametre sayısıyla ilgilidir:
// bir [PreparedStatement]'in maksimum parametre sayısı
public final static int MAX_PREPAREDSTATEMENT_PARAMETERS = 1000;
[JUnitTestPushTheLimits] testi, 5000 ürün üzerinde SQL emirleri oluşturur ve bunlar da 5000 parametre içeren [PreparedStatement] dosyalarını oluşturur. MySQL bu değeri desteklemişti. Firebird ise desteklemiyordu.
Dördüncü değişiklik, Firebird-config-jdbc'nin bir ayrılmış kelimesiyle ilgilidir: PASSWORD. Bu nedenle [USERS.PASSWORD] sütunu, [USERS.PASSWD] olarak yeniden adlandırılmıştır:
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. JPA katmanının yapılandırılması OpenJpa
![]() | ![]() |
[firebird-config-jpa-openjpa] projesi, test mimarisinin [JPA] katmanını yapılandırır:
![]() |
Bu proje, Oracle'ın SGBD katmanındaki JPA ve OpenJpa katmanlarının [firebird-config-jpa-openjpa] yapılandırma projesine benzerdir (bkz. paragraf 10.5). Aslında, her iki SGBD de birincil anahtarları oluşturmak için diziler kullanır. Yapılması gereken tek bir değişiklik vardır. Bu değişiklik, [ConfigJpa] sınıfının [jpaVendorAdapter] bean tanımında yer almaktadır:
// JPA sağlayıcısı
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
OpenJpaVendorAdapter openJpaVendorAdapter = new OpenJpaVendorAdapter();
openJpaVendorAdapter.setShowSql(false);
openJpaVendorAdapter.setDatabase(Database.DEFAULT);
openJpaVendorAdapter.setGenerateDdl(true);
return openJpaVendorAdapter;
}
- 6. satır: JPA uygulamasına, tanınmayan bir SGBD ile çalışacağı belirtilir. JPA uygulaması, bu durumda SQL'in standart veri türlerini de benimseyecektir.
Bu değişiklikler yapıldıktan sonra, [spring-jpa-generic-JUnitTestDao-openjpa] yapılandırmasının yürütülmesi başarılı olmalıdır.
![]() | ![]() |
14.4. JPA Hibernate katmanının yapılandırılması
![]() | ![]() |
Not: Tüm Maven projelerini yeniden oluşturmak için [Alt-F5] komutunu çalıştırın.
[firebird-config-jpa-hibernate] projesi, [oracle-config-jpa-hibernate] (10.4. paragraf) ile aynıdır ve [oracle-config-jpa-openjpa] projesinin [firebird-config-jpa-openjpa] projesine taşınmasında yapılan değişikliklerin aynısı bu projede de uygulanmıştır (10.4. paragraf).
Bu değişiklikler yapıldıktan sonra, [spring-jpa-generic-JUnitTestDao-hibernate-eclipselink] yapılandırmasının çalıştırılması başarılı olmalıdır.
14.5. JPA katmanının yapılandırılması EclipseLink
![]() | ![]() |
Not: Tüm Maven projelerini yeniden oluşturmak için [Alt-F5] komutunu çalıştırın.
[firebird-config-jpa-eclipselink] projesi, [oracle-config-jpa-eclipselink] projesine (10.3. paragraf) ve [oracle-config-jpa-openjpa] projesinin [firebird-config-jpa-openjpa] projesine taşınmasında (10.4. paragraf) uygulanan değişikliklerin aynısı bu projede de geçerlidir.
Bu değişiklikler yapıldıktan sonra, [spring-jpa-generic-JUnitTestDao-hibernate-eclipselink] yapılandırmasının çalıştırılması başarılı olmalıdır.



















