Integrácia Spring Boot s HSQLDB
1. Prehľad
Vďaka Spring Boot je práca s rôznymi databázovými systémami skutočne ľahká bez problémov s manuálnou správou závislostí.
Presnejšie, štartér Spring Data JPA poskytuje všetky funkcie potrebné na bezproblémovú integráciu s niekoľkými Dátový zdroj implementácie. V tomto návode sa dozvieme, ako integrovať Spring Boot s HSQLDB. Aby sme demonštrovali, aká ľahká je integrácia Spring Boot s HSQLDB, vytvoríme jednoduchú vrstvu úložiska JPA, ktorá vykonáva operácie CRUD na entitách zákazníkov pomocou databázy HSQLDB v pamäti. Tu je štartovací program Spring Boot, ktorý použijeme na uvedenie a spustenie našej vrstvy vzorového úložiska: Upozorňujeme, že sme zahrnuli aj závislosť HSQLDB. Bez neho sa Spring Boot pokúsi automaticky nakonfigurovať a Dátový zdroj bean a fond pripojení JDBC pre nás prostredníctvom HikariCP. Ako dôsledok, ak neurčíme platný Dátový zdroj závislosť v našom pom.xml súboru, dostaneme zlyhanie zostavenia. Okrem toho skontrolujte najnovšiu verziu servera spring-boot-starter-data-jpa na Maven Central. Na precvičenie našej vrstvy demo úložiska použijeme databázu v pamäti. Je však možné pracovať aj so súborovými databázami. Každú z týchto metód preskúmame v nasledujúcich častiach. Poďme sa pozrieť na to, ako spustiť externý server HSQLDB a vytvoriť databázu založenú na súboroch. Inštalácia HSQLDB a spustenie servera je celkovo jednoduchá. Tu by sme mali nasledovať kroky: Po vytvorení databázy je potrebné vytvoriť k nej pripojenie. Ak to chcete urobiť v systéme Windows, poďme k databáze kôš priečinok a spustite priečinok runManagerSwing.bat spis. Otvorí sa úvodná obrazovka správcu databázy HSQLDB, kde môžeme zadať poverenia pripojenia: V systémoch Linux / Unix / Mac, môžeme na vytvorenie databázového pripojenia pomocou vizuálnych nástrojov IDE pomocou rovnakých údajov použiť NetBeans, Eclipse alebo IntelliJ IDEA. V ktoromkoľvek z týchto nástrojov je jednoduché vytvoriť databázovú tabuľku vykonaním skriptu SQL v Správcovi databáz alebo v IDE. Po pripojení môžeme vytvoriť zákazníkov tabuľka: Len v niekoľkých jednoduchých krokoch sme vytvorili súborovú databázu HSQLDB obsahujúcu a zákazníkov stôl. Ak sa chceme pripojiť k predchádzajúcej súborovej databáze z Spring Boot, tu je nastavenie, ktoré by sme mali zahrnúť do application.properties spis: Prípadne, ak použijeme databázu v pamäti, mali by sme použiť tieto: Vezmite prosím na vedomie DB_CLOSE_DELAY = -1 parameter pripojený na koniec adresy URL databázy. Pri práci s databázou v pamäti to musíme špecifikovať, takže implementácia JPA, ktorou je režim dlhodobého spánku, nezatvorí databázu, kým je aplikácia spustená. Keď už sú nastavenia pripojenia k databáze nastavené, musíme si definovať naše Zákazník subjekt: Okrem toho musíme implementovať tenkú vrstvu perzistencie, ktorá nám umožňuje mať na sebe základné funkcie CRUD Zákazník Subjekty JPA. Túto vrstvu môžeme ľahko implementovať iba rozšírením Úložisko Crud rozhranie: Nakoniec by sme sa mali ubezpečiť, že Spring Boot sa môže skutočne pripojiť k HSQLDB. Ľahko to dosiahneme iba testovaním vrstvy úložiska. Začnime testovať úložisko findById () a findAll () metódy: Nakoniec otestujme uložiť () metóda: V tomto článku naučili sme sa, ako integrovať Spring Boot s HSQLDB, a ako používať databázu založenú na súboroch alebo v pamäti pri vývoji základnej vrstvy úložiska JPA. Ako obvykle sú všetky ukážky kódu zobrazené v tomto článku k dispozícii na GitHub.2. Závislosti Maven
org.springframework.boot spring-boot-starter-data-jpa 2.2.2. RELEASE org.hsqldb hsqldb 2.4.0 runtime
3. Pripojenie k databáze HSQLDB
3.1. Prevádzka externého servera HSQLDB
java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file.testdb --dbname0.testdb
CREATE TABLE customers (id INT NOT NULL, name VARCHAR (45), email VARCHAR (45), PRIMARY KEY (ID));
3.2. The application.properties Súbor
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 = aktualizácia
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 = vytvoriť
4. The Zákazník Subjekt
@Entity @Table (name = "customers") verejná trieda Zákazník {@Id @GeneratedValue (strategy = GenerationType.AUTO) súkromné dlhé ID; súkromné meno reťazca; súkromný reťazcový e-mail; // štandardné konštruktory / setre / getre / toString}
5. Zákazník Úložisko
@Repository verejné rozhranie CustomerRepository rozširuje CrudRepository {}
6. Testovanie Zákazník Úložisko
@RunWith (SpringRunner.class) @SpringBootTest verejná trieda CustomerRepositoryTest {@Autowired private CustomerRepository customerRepository; @Test public void whenFindingCustomerById_thenCorrect () {customerRepository.save (new Customer ("John", "[email protected]")); assertThat (customerRepository.findById (1L)). isInstanceOf (Optional.class); } @Test public void whenFindingAllCustomers_thenCorrect () {customerRepository.save (new Customer ("John", "[email protected]")); customerRepository.save (nový zákazník ("Julie", "[chránený e-mailom]")); assertThat (customerRepository.findAll ()). isInstanceOf (List.class); }}
@ Test public void whenSavingCustomer_thenCorrect () {customerRepository.save (nový zákazník ("Bob", "[chránený e-mailom]")); Zákazník zákazník = customerRepository.findById (1L) .orElseGet (() -> nový zákazník ("john", "[chránený e-mailom]")); assertThat (customer.getName ()). isEqualTo ("Bob"); }
7. Záver