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. 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: 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. 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. 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: 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: 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: Néhány egyszerű lépésben létrehoztunk egy fájl alapú HSQLDB adatbázist, amely a ügyfelek asztal. 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: Alternatív megoldásként, ha memóriában lévő adatbázist használunk, ezeket kell használnunk: 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. A már beállított adatbázis-kapcsolati beállításokkal a következőket kell megadnunk Vevő entitás: 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: 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: Végül teszteljük a mentés() módszer: 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.2. A Maven-függőségek
org.springframework.boot spring-boot-starter-data-jpa 2.2.2.RELEASE org.hsqldb hsqldb 2.4.0 futásidejű
3. Csatlakozás egy HSQLDB adatbázishoz
3.1. Külső HSQLDB szerver futtatása
java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file.testdb --dbname0.testdb
CREATE TABLE ügyfelek (id INT NOT NULL, név VARCHAR (45), e-mail VARCHAR (45), PRIMARY KEY (ID));
3.2. A alkalmazás.tulajdonságok File
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
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
4. A 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
@Repository nyilvános felület Az CustomerRepository kiterjeszti a CrudRepository {}
6. A. Tesztelése Vevő Adattár
@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); }}
@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