A tavaszi csomagtartó integrálása a HSQLDB-vel

1. Áttekintés

A Spring Boot megkönnyíti a különböző adatbázis-rendszerekkel való munkát, a kézi függőségkezelés problémája nélkül.

Pontosabban, a Spring Data JPA starter biztosítja az összes funkciót, amely a zökkenőmentes integrációhoz szükséges Adatforrás megvalósítások.

Ebben az oktatóanyagban megtanuljuk, hogyan kell integrálni a Spring Boot-ot a HSQLDB-be.

2. A Maven-függőségek

Annak bemutatására, hogy milyen egyszerű integrálni a Spring Bootot a HSQLDB-be, létrehozunk egy egyszerű JPA adattár réteget, amely CRUD műveleteket hajt végre az ügyfelek entitásain, a memóriában lévő HSQLDB adatbázis használatával.

Itt van a Spring Boot indító, amelyet a mintatárházi réteg felállításához használunk:

 org.springframework.boot spring-boot-starter-data-jpa 2.2.2.RELEASE org.hsqldb hsqldb 2.4.0 futásidejű 

Ne feledje, hogy belefoglaltuk a HSQLDB függőséget is. Enélkül a Spring Boot megpróbálja automatikusan konfigurálni a Adatforrás babot és egy JDBC csatlakozási készletet a HikariCP-n keresztül.

Következésképpen, ha nem adunk meg érvényes értéket Adatforrás függőség a mi pom.xml fájlt kapunk egy összeépítési hibát.

Ezenkívül ellenőrizzük a legfrissebb verzióját spring-boot-starter-data-jpa a Maven Central-on.

3. Csatlakozás egy HSQLDB adatbázishoz

A demo lerakat réteg gyakorlásához memóriában lévő adatbázist fogunk használni. Lehetséges azonban fájlalapú adatbázisokkal is dolgozni. Ezeket a módszereket az alábbi szakaszokban vizsgáljuk meg.

3.1. Külső HSQLDB szerver futtatása

Vessünk egy pillantást arra, hogyan lehet elindítani egy külső HSQLDB szervert és létrehozni egy fájl alapú adatbázist. A HSQLDB telepítése és a szerver futtatása összességében egyszerű.

A következő lépéseket kell követnünk:

  • Először letöltjük a HSQLDB-t és kibontjuk egy mappába
  • Mivel a HSQLDB nem biztosít alapértelmezett adatbázist a dobozból, létrehozunk egy úgynevezett nevet „Testdb” például célokra
  • Indítunk egy parancssort, és navigálunk a HSQLDB-hez adat mappába
  • Belül adat mappába futtatjuk a következő parancsot:
    java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file.testdb --dbname0.testdb
  • A fenti parancs elindítja a HSQLDB szervert, és létrehozza az adatbázisunkat, amelynek forrásfájljai a adat mappába
  • Meggyőződhetünk arról, hogy az adatbázis valóban létrejött-e az adat mappát kell tartalmaznia „Testdb.lck”, “Testdb.log”, „Testdb.properties”, és „Testdb.script” (a fájlok száma a létrehozott adatbázis típusától függően változik)

Az adatbázis beállítása után létre kell hoznunk a kapcsolatot.

Ehhez Windows rendszeren, menjünk az adatbázisba kuka mappát, és futtassa a runManagerSwing.bat fájl. Ez megnyitja a HSQLDB Adatbázis-kezelő kezdőképernyőjét, ahol megadhatjuk a csatlakozási hitelesítő adatokat:

  • Típus: HSQL adatbázis-motor
  • URL:jdbc: hsqldb: hsql: // localhost / testdb
  • Felhasználó: „SA” (rendszergazda)
  • Jelszó: hagyja üresen a mezőt

Linux / Unix / Mac rendszeren, a NetBeans, az Eclipse vagy az IntelliJ IDEA segítségével létrehozhatjuk az adatbázis-kapcsolatot az IDE vizuális eszközein keresztül, ugyanazokkal a hitelesítő adatokkal.

Ezen eszközök bármelyikében egyszerű adatbázis-táblázatot létrehozni SQL-parancsfájl végrehajtásával az Adatbázis-kezelőben vagy az IDE-ben.

A csatlakozás után létrehozhatunk egy ügyfelek asztal:

CREATE TABLE ügyfelek (id INT NOT NULL, név VARCHAR (45), e-mail VARCHAR (45), PRIMARY KEY (ID)); 

Néhány egyszerű lépésben létrehoztunk egy fájl alapú HSQLDB adatbázist, amely a ügyfelek asztal.

3.2. A alkalmazás.tulajdonságok File

Ha csatlakozni akarunk a Spring Boot előző fájlalapú adatbázisához, íme a beállítások, amelyeket fel kell vennünk a alkalmazás.tulajdonságok fájl:

spring.datasource.driver-class-name = org.hsqldb.jdbc.JDBCDriver spring.datasource.url = jdbc: hsqldb: hsql: // localhost / testdb spring.datasource.username = sa spring.datasource.password = spring.jpa .hibernate.ddl-auto = frissítés 

Alternatív megoldásként, ha memóriában lévő adatbázist használunk, ezeket kell használnunk:

spring.datasource.driver-class-name = org.hsqldb.jdbc.JDBCDriver spring.datasource.url = jdbc: hsqldb: mem: testdb; DB_CLOSE_DELAY = -1 spring.datasource.username = sa spring.datasource.password = spring. jpa.hibernate.ddl-auto = létrehozás 

Kérjük, vegye figyelembe a DB_CLOSE_DELAY = -1 paraméter az adatbázis URL végén található. Ha memóriában lévő adatbázissal dolgozunk, ezt meg kell adnunk, így a Hibernate nevű JPA megvalósítás nem zárja be az adatbázist az alkalmazás futása közben.

4. A Vevő Entitás

A már beállított adatbázis-kapcsolati beállításokkal a következőket kell megadnunk Vevő entitás:

@Entity @Table (name = "customers") public class Ügyfél {@Id @GeneratedValue (strategy = GenerationType.AUTO) private long id; privát karakterlánc neve; privát karakterlánc e-mail; // standard kivitelezők / beállítók / getters / toString} 

5. A Vevő Adattár

Ezenkívül egy vékony perzisztencia réteget kell megvalósítanunk, amely lehetővé teszi számunkra az alapvető CRUD funkciók használatát Vevő JPA-entitások.

Könnyedén megvalósíthatjuk ezt a réteget a CrudRepository felület:

@Repository nyilvános felület Az CustomerRepository kiterjeszti a CrudRepository {}

6. A. Tesztelése Vevő Adattár

Végül meg kell győződnünk arról, hogy a Spring Boot valóban csatlakozni tud-e a HSQLDB-hez. Ezt egyszerűen meg tudjuk valósítani a lerakati réteg tesztelésével.

Kezdjük el tesztelni az adattárat findById () és Találd meg mindet() mód:

@RunWith (SpringRunner.class) @SpringBootTest nyilvános osztály CustomerRepositoryTest {@Autowired private CustomerRepository customerRepository; @Test public void whenFindingCustomerById_thenCorrect () {customerRepository.save (new Customer ("John", "[email protected]")); assertThat (customerRepository.findById (1L)). isInstanceOf (Opcionális.osztály); } @Test public void whenFindingAllCustomers_thenCorrect () {customerRepository.save (new Customer ("John", "[email protected]")); customerRepository.save (új Ügyfél ("Julie", "[e-mail védett]")); assertThat (customerRepository.findAll ()). isInstanceOf (List.class); }} 

Végül teszteljük a mentés() módszer:

@Test public void whenSavingCustomer_thenCorrect () {customerRepository.save (new Customer ("Bob", "[email protected]")); Ügyfél ügyfél = customerRepository.findById (1L) .orElseGet (() -> új Ügyfél ("john", "[email protected]")); assertThat (customer.getName ()). isEqualTo ("Bob"); }

7. Következtetés

Ebben a cikkben, megtanultuk, hogyan kell integrálni a Spring Bootot a HSQLDB-be, és hogyan lehet fájlalapú vagy memóriában lévő adatbázist használni az alapvető JPA-tárházi réteg fejlesztésében.

Szokás szerint a cikkben bemutatott összes kódminta elérhető a GitHubon.