Čo je databáza v pamäti
Databáza v pamäti sa na ukladanie údajov spolieha na systémovú pamäť, nie na diskový priestor. Pretože prístup k pamäti je rýchlejší ako prístup k disku. In-memory databázu používame vtedy, keď nepotrebujeme uchovávať údaje. Databáza v pamäti je vstavaná databáza. Databázy v pamäti sú v predvolenom nastavení nestále a všetky uložené údaje sa stratia, keď aplikáciu reštartujeme.
Široko používané in-memory databázy sú H2, HSQLDB (HyperSQL databáza) , a Apache Derby. Konfiguráciu vytvorí automaticky.
Perzistencia vs. databáza v pamäti
Perzistentná databáza uchováva údaje vo fyzickej pamäti. Údaje budú dostupné, aj keď bude databázový server vrátený. Niektoré populárne databázy perzistencie sú Oracle , MySQL , Postgres , atď.
V prípade databáza v pamäti, dátové úložisko v systémová pamäť . Pri zatvorení programu došlo k strate údajov. Je to užitočné pre MÁLO s (Proof of Concepts), nie pre produkčnú aplikáciu. Široko používaná in-memory databáza je H2.
Čo je databáza H2
H2 je vložené, open-source, a v pamäti databázy. Je to systém na správu relačných databáz napísaný v Java . Je to a Klientsky server aplikácie. Všeobecne sa používa v jednotkové testovanie . Ukladá dáta do pamäte, neuchováva dáta na disku.
Výhody
- Nulová konfigurácia
- Ľahko sa používa.
- Je ľahký a rýchly.
- Poskytuje jednoduchú konfiguráciu na prepínanie medzi skutočnou databázou a databázou v pamäti.
- Podporuje štandardné SQL a JDBC API.
- Poskytuje webovú konzolu na udržiavanie v databáze.
Konfigurácia databázy H2
Ak chceme v aplikácii použiť databázu H2, musíme do súboru pom.xml pridať nasledujúcu závislosť:
com.h2database h2 runtime
Po pridaní závislosti musíme nakonfigurovať URL zdroja údajov, názov triedy ovládača, meno používateľa, a heslo databázy H2. Spring Boot poskytuje jednoduchý spôsob konfigurácie týchto vlastností aplikácie.vlastnosti súbor.
spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
V spring.datasource.url nehnuteľnosť, pamäť je názov databázy v pamäti a testdb je názov schémy, ktorú štandardne poskytuje H2. Môžeme si definovať aj vlastnú schému a databázu. Predvolené používateľské meno je na a prázdne heslo označuje an prázdny heslo. Ak chceme zmeniť užívateľské meno a heslo, môžeme tieto hodnoty prepísať.
java matematika náhodná
Zachovať údaje v databáze H2
Ak chceme zachovať údaje v databáze H2, mali by sme údaje uložiť do súboru. Aby sme dosiahli to isté, musíme zmeniť vlastnosť adresy URL zdroja údajov.
#persist the data spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata
Vo vyššie uvedenom majetku, vzorové údaje je názov súboru.
Vytvorte schému a vyplňte údaje
Schému môžeme definovať vytvorením a SQL súbor v zdroj priečinok (src/main/resource).
schema.sql
DROP TABLE IF EXISTS CITY; CREATE TABLE CITY ( City_code INT AUTO_INCREMENT PRIMARY KEY, city_name VARCHAR(50) NOT NULL, city_pincode INT(8) NOT NULL );
Údaje v tabuľke môžeme vyplniť vytvorením a SQL súbor v zdroj priečinok (src/main/resource).
data.sql
INSERT INTO CITY VALUES (11, 'Delhi', 110001); INSERT INTO CITY VALUES (12, 'Kanpur', 208001); INSERT INTO CITY VALUES (13, 'Lucknow', 226001);
Spring Boot automaticky zdvihne data.sql súbor a spustite ho proti databáze H2 počas spúšťania aplikácie.
Konzola H2
V predvolenom nastavení je konzolové zobrazenie databázy H2 zakázané. Pred prístupom k databáze H2 ju musíme povoliť pomocou nasledujúcej vlastnosti.
#enabling the H2 console spring.h2.console.enabled=true
Keď sme povolili konzolu H2, teraz môžeme pristupovať ku konzole H2 v prehliadači vyvolaním adresy URL http://localhost:8080/h2-console. Nasledujúci obrázok zobrazuje konzolový pohľad na databázu H2.
Na obrázku vyššie sme definovali vlastnú databázu s názvom javatpoint .
Príklad Spring Boot H2
Nastavíme aplikáciu Spring Boot s databázou H2.
Krok 1: Otvorte Spring Initializr http://start.spring.io .
Krok 2: Vyberte verziu Spring Boot 2.3.0.M1.
Krok 2: Poskytnite Skupina názov. Poskytli sme com.javatpoint.
Krok 3: Poskytnite Artefakt Id. Poskytli sme spring-boot-h2-database-priklad.
Krok 5: Pridajte závislosti Spring Web, Spring Data JPA , a Databáza H2.
Krok 6: Klikni na Generovať tlačidlo. Keď klikneme na tlačidlo Generovať, zabalí projekt do a Jar súbor a stiahne ho do lokálneho systému.
Krok 7: Extrakt súbor Jar a vložte ho do pracovného priestoru STS.
Krok 8: Importovať priečinok projektu do STS.
Súbor -> Import -> Existujúce projekty Maven -> Prehľadávať -> Vyberte priečinok spring-boot-h2-database-example -> Dokončiť
skener.ďalej java
Import trvá nejaký čas.
Krok 9: Vytvorte balík s názvom com.javatpoint.model v priečinku src/main/java.
Krok 10: Vytvorte triedu modelu v balíku com.javatpoint.model. Vytvorili sme triedu modelu s názvom Študent. V triede Knihy sme urobili nasledovné:
- Definujte štyri premenné id, vek, meno, a
- Generovať getterov a setrov.
Kliknite pravým tlačidlom myši na súbor -> Zdroj -> Generovať získavače a nastavovače. - Označte triedu ako Entita pomocou anotácie @Entity.
- Označte triedu ako Tabuľka názov pomocou anotácie @Tabuľka.
- Definujte každú premennú ako Stĺpec pomocou anotácie @Stĺpec.
Študent.java
package com.javatpoint.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; //mark class as an Entity @Entity //defining class name as Table name @Table public class Student { //mark id as primary key @Id //defining id as column name @Column private int id; //defining name as column name @Column private String name; //defining age as column name @Column private int age; //defining email as column name @Column private String email; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
Krok 11: Vytvorte balík s názvom com.javatpoint.controller v priečinku src/main/java.
Krok 12: Vytvorte triedu Controller v balíku com.javatpoint.controller . Vytvorili sme triedu radiča s názvom StudentController . V triede StudentController sme urobili nasledovné:
- Označte triedu ako RestController pomocou anotácie @RestController.
- Autowire StudentService triedy pomocou anotácie @Autowired .
- Definujte nasledujúce metódy:
getAllStudent(): Vráti zoznam všetkých študentov.
StudentController.java
package com.javatpoint.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.javatpoint.model.Student; import com.javatpoint.service.StudentService; //creating RestController @RestController public class StudentController { //autowired the StudentService class @Autowired StudentService studentService; //creating a get mapping that retrieves all the students detail from the database @GetMapping('/student') private List getAllStudent() { return studentService.getAllStudent(); } //creating a get mapping that retrieves the detail of a specific student @GetMapping('/student/{id}') private Student getStudent(@PathVariable('id') int id) { return studentService.getStudentById(id); } //creating a delete mapping that deletes a specific student @DeleteMapping('/student/{id}') private void deleteStudent(@PathVariable('id') int id) { studentService.delete(id); } //creating post mapping that post the student detail in the database @PostMapping('/student') private int saveStudent(@RequestBody Student student) { studentService.saveOrUpdate(student); return student.getId(); } }
Krok 13: Vytvorte balík s názvom com.javatpoint.service v priečinku src/main/java.
Krok 14: Vytvor servis trieda. Vytvorili sme triedu služieb s názvom StudentService v balíku com.javatpoint.service.
StudentService.java
package com.javatpoint.service; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.javatpoint.model.Student; import com.javatpoint.repository.StudentRepository; @Service public class StudentService { @Autowired StudentRepository studentRepository; //getting all student records public List getAllStudent() { List students = new ArrayList(); studentRepository.findAll().forEach(student -> students.add(student)); return students; } //getting a specific record public Student getStudentById(int id) { return studentRepository.findById(id).get(); } public void saveOrUpdate(Student student) { studentRepository.save(student); } //deleting a specific record public void delete(int id) { studentRepository.deleteById(id); } }
Krok 15: Vytvorte balík s názvom com.javatpoint.repository v priečinku src/main/java.
Krok 16: Vytvor Úložisko rozhranie. Vytvorili sme rozhranie úložiska s názvom ŠtudentRepository v balíku com.javatpoint.repository. Rozširuje to Crud Repository rozhranie.
StudentRepository.java
package com.javatpoint.repository; import org.springframework.data.repository.CrudRepository; import com.javatpoint.model.Student; public interface StudentRepository extends CrudRepository { }
Teraz nakonfigurujeme zdroj údajov URL, názov triedy ovládača, používateľské meno, a heslo, v aplikácie.vlastnosti súbor.
Krok 17: Otvor aplikácie.vlastnosti súbor a nakonfigurujte nasledujúce vlastnosti.
Sridevi
aplikácie.vlastnosti
spring.datasource.url=jdbc:h2:mem:javatpoint spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect #enabling the H2 console spring.h2.console.enabled=true
Poznámka: Nezabudnite povoliť konzolu H2.
Po vytvorení všetkých tried a balíkov vyzerá adresár projektu nasledovne.
Teraz spustíme aplikáciu.
Krok 18: OTVORENÉ SpringBootH2DatabaseExampleApplication.java súbor a spustite ho ako aplikáciu Java.
SpringBootH2DatabaseExampleApplication.java
package com.javatpoint; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootH2DatabaseExampleApplication { public static void main(String[] args) { SpringApplication.run(SpringBootH2DatabaseExampleApplication.class, args); } }
V ďalšom kroku použijeme klienta rest Poštár za odoslanie POST a GET žiadosť . Ak Postman nie je nainštalovaný vo vašom systéme, postupujte podľa nasledujúcich krokov:
- Stiahnite si Poštára z https://www.getpostman.com/downloads/ alebo si do prehliadača pridajte rozšírenie Google Chrome https://bit.ly/1HCOCwF .
- Spustite poštára a Prihlásiť Se . Vytvorte používateľské meno. Vytvorili sme používateľa s menom javatpoint a klikol na Predložiť
Krok 19: Otvor Poštár a urobte nasledovné:
- Vyberte POST
- Vyvolajte adresu URL http://localhost:8080/student.
- Vyberte Telo
- Vyberte typ obsahu JSON (aplikácia/json).
- Vložte údaje. Do tela sme vložili nasledujúce údaje:
{ 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' }
- Klikni na Odoslať
Keď je požiadavka úspešne vykonaná, zobrazí sa Stav: 200 OK . Znamená to, že záznam bol úspešne vložený do databázy.
Podobne sme vložili nasledujúce údaje.
{ 'id': '002', 'age': '24', 'name': 'Vadik', 'email': '[email protected]' } { 'id': '003', 'age': '21', 'name': 'Prateek', 'email': '[email protected]' } { 'id': '004', 'age': '25', 'name': 'Harsh', 'email': '[email protected]' } { 'id': '005', 'age': '24', 'name': 'Swarit', 'email': '[email protected]' }
Ak chcete zobraziť údaje, prejdite na konzolu H2.
Krok 20: Otvorte prehliadač a vyvolajte URL http://localhost:8080/h2-console. Klikni na Pripojte sa tlačidlo, ako je znázornené nižšie.
Po kliknutí na Pripojte sa tlačidlo, vidíme Študent tabuľky v databáze, ako je uvedené nižšie.
Krok 21: Klikni na Študent a potom kliknite na Bežať tlačidlo. V tabuľke sú uvedené údaje, ktoré sme vložili do tela.
Krok 22: Otvorte Postman a odošlite a GET žiadosť. Vráti údaje, ktoré sme vložili do databázy.
Pošlime a GET žiadosť s adresou URL http://localhost:8080/student/{id}. Vyvolali sme adresu URL http://localhost:8080/student/3. Vráti detail študenta, ktorého ID je 3.
padding css
Podobne môžeme poslať aj a VYMAZAŤ žiadosť. Predpokladajme, že chceme odstrániť záznam študenta, ktorého ID je 2.
Ak chcete odstrániť záznam študenta, odošlite a VYMAZAŤ žiadosť s URL http://localhost:8080/student/2. Vidíme, že študent, ktorého id je 2 bol vymazaný z databázy.
Stiahnite si príklad projektu databázy H2