logo

Spring Boot H2 datu bāze

Kas ir atmiņā esošā datu bāze

Atmiņā esošā datu bāze balstās uz sistēmas atmiņu, nevis uz diska vietu datu glabāšanai. Tā kā piekļuve atmiņai ir ātrāka nekā piekļuve diskam. Mēs izmantojam atmiņā esošo datu bāzi, ja mums nav nepieciešams saglabāt datus. Atmiņā esošā datu bāze ir iegulta datu bāze. Atmiņā esošās datu bāzes pēc noklusējuma ir nepastāvīgas, un, restartējot lietojumprogrammu, visi saglabātie dati tiek zaudēti.

Plaši izmantotās atmiņas datu bāzes ir H2, HSQLDB (HyperSQL datu bāze) , un Apache Derbijs. Tas automātiski izveido konfigurāciju.

Noturība salīdzinājumā ar datu bāzi atmiņā

Pastāvīgā datu bāze saglabā datus fiziskajā atmiņā. Dati būs pieejami pat tad, ja datu bāzes serveris ir atlēcis. Dažas populāras noturības datu bāzes ir Orākuls, MySQL , Postgres, utt.

Gadījumā, atmiņas datu bāze, datu krātuvē sistēmas atmiņa . Kad programma tika aizvērta, tā zaudēja datus. Tas ir noderīgi, lai MAZ s (Proof of Concepts), nav paredzēts ražošanas lietojumam. Plaši izmantotā atmiņas datubāze ir H2.

Kas ir H2 datu bāze

H2 ir iegults, atvērtā koda, un atmiņā datu bāze. Tā ir relāciju datu bāzes pārvaldības sistēma, kas ierakstīta Java . Tas ir klients/serveris pieteikumu. To parasti izmanto vienību pārbaude . Tas saglabā datus atmiņā, nevis saglabā datus diskā.

Priekšrocības

  • Nulles konfigurācija
  • To ir viegli lietot.
  • Tas ir viegls un ātrs.
  • Tas nodrošina vienkāršu konfigurāciju, lai pārslēgtos starp reālu datu bāzi un atmiņas datu bāzi.
  • Tā atbalsta standarta SQL un JDBC API.
  • Tas nodrošina tīmekļa konsoli, ko uzturēt datu bāzē.

Konfigurējiet H2 datu bāzi

Ja lietojumprogrammā vēlamies izmantot H2 datu bāzi, failā pom.xml jāpievieno šāda atkarība:

 com.h2database h2 runtime 

Pēc atkarības pievienošanas mums ir jākonfigurē datu avota URL, draivera klases nosaukums, lietotājvārds, un parole no H2 datu bāzes. Spring Boot nodrošina vienkāršu veidu, kā konfigurēt šos rekvizītus pielietojums.īpašības failu.

 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 

Iekš spring.datasource.url īpašums, mem ir atmiņā esošas datu bāzes nosaukums un testdb ir shēmas nosaukums, ko H2 nodrošina pēc noklusējuma. Mēs varam arī definēt savu shēmu un datu bāzi. Noklusējuma lietotājvārds ir ieslēgts un tukšā parole apzīmē an tukšs parole. Ja vēlamies mainīt lietotājvārdu un paroli, mēs varam ignorēt šīs vērtības.

Saglabājiet datus H2 datu bāzē

Ja mēs vēlamies saglabāt datus H2 datu bāzē, mums vajadzētu saglabāt datus failā. Lai to panāktu, mums ir jāmaina datu avota URL rekvizīts.

 #persist the data spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata 

Iepriekš minētajā īpašumā paraugdati ir faila nosaukums.

Izveidojiet shēmu un aizpildiet datus

Mēs varam definēt shēmu, izveidojot a SQL failu mapē resurss mape (src/main/resurss).

schema.sql

Aktrise Rubīna Dilaika
 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 ); 

Mēs varam aizpildīt datus tabulā, izveidojot a SQL failu mapē resurss mape (src/main/resurss).

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 automātiski paceļ data.sql failu un palaist to pret H2 datu bāzi lietojumprogrammas startēšanas laikā.

H2 konsole

Pēc noklusējuma H2 datu bāzes konsoles skats ir atspējots. Pirms piekļūt H2 datu bāzei, mums tā ir jāiespējo, izmantojot šādu rekvizītu.

 #enabling the H2 console spring.h2.console.enabled=true 

Kad esam iespējojuši H2 konsoli, tagad mēs varam piekļūt H2 konsolei pārlūkprogrammā, izsaucot URL http://localhost:8080/h2-console. Nākamajā attēlā parādīts H2 datu bāzes konsoles skats.

Spring Boot H2 datu bāze

Iepriekš redzamajā ekrānuzņēmumā mēs esam definējuši savu datu bāzi ar nosaukumu javatpoint .

Spring Boot H2 piemērs

Iestatīsim Spring Boot lietojumprogrammu ar H2 datu bāzi.

1. darbība: Atveriet Spring Initializr http://start.spring.io.

2. darbība: Izvēlieties Spring Boot versiju 2.3.0.M1.

2. darbība: Nodrošiniet Grupa nosaukums. Mēs esam nodrošinājuši com.javatpoint.

gimp eksportēt kā jpg

3. darbība: Nodrošiniet Artefakts Id. Mēs esam nodrošinājuši spring-boot-h2-database-example.

5. darbība: Pievienojiet atkarības Spring Web, Spring Data JPA, un H2 datu bāze.

6. darbība: Noklikšķiniet uz Ģenerēt pogu. Kad mēs noklikšķinām uz pogas Ģenerēt, tas iesaiņo projektu a Jar failu un lejupielādē to vietējā sistēmā.

Spring Boot H2 datu bāze

7. darbība: Ekstrakts Jar failu un ielīmējiet to STS darbvietā.

8. darbība: Importēt projekta mapi STS.

Fails -> Importēt -> Esošie Maven projekti -> Pārlūkot -> Atlasiet mapi spring-boot-h2-database-example -> Pabeigt

Importēšanai nepieciešams zināms laiks.

9. darbība: Izveidojiet paketi ar nosaukumu com.javatpoint.model mapē src/main/java.

10. darbība: Iepakojumā izveidojiet modeļa klasi com.javatpoint.model. Mēs esam izveidojuši modeļu klasi ar nosaukumu Students. Grāmatu klasē mēs veicām šādas darbības:

  • Definējiet četrus mainīgos ID, vecums, vārds, un
  • Ģenerējiet Getterus un Seterus.
    Ar peles labo pogu noklikšķiniet uz faila -> Avots -> Ģenerēt ieguvējus un iestatītājus.
  • Atzīmēt klasi kā Vienība izmantojot anotāciju @Entity.
  • Atzīmēt klasi kā Tabula nosaukumu, izmantojot anotāciju @Tabula.
  • Definējiet katru mainīgo kā Kolonna izmantojot anotāciju @Kolonna.

Student.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; } } 

11. darbība: Izveidojiet paketi ar nosaukumu com.javatpoint.controller mapē src/main/java.

12. darbība: Pakotnē izveidojiet kontroliera klasi com.javatpoint.controller . Mēs esam izveidojuši kontroliera klasi ar nosaukumu StudentController . StudentController klasē mēs esam veikuši sekojošo:

  • Atzīmēt klasi kā RestController izmantojot anotāciju @RestController.
  • Autowire the Studentu serviss klasē, izmantojot anotāciju @Autowired .
  • Definējiet šādas metodes:
      getAllStudent():Tas atgriež visu studentu sarakstu.
  • getStudent():Tas atgriež skolēna informāciju, ko esam norādījuši ceļa mainīgajā. Mēs esam nodevuši id kā argumentu, izmantojot anotāciju @PathVariable. Anotācija norāda, ka metodes parametram jābūt saistītam ar URI veidnes mainīgo.dzēstStudent():Tas izdzēš konkrētu studentu, kuru esam norādījuši ceļa mainīgajā.saglabāt Studentu():Tas saglabā studenta informāciju. Anotācija @RequestBody norāda, ka metodes parametram jābūt saistītam ar tīmekļa pieprasījuma pamattekstu.

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(); } } 

13. darbība: Izveidojiet paketi ar nosaukumu com.javatpoint.service mapē src/main/java.

14. darbība: Izveidot a apkalpošana klasē. Esam izveidojuši servisa klasi ar nosaukumu Studentu serviss iepakojumā 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); } } 

15. darbība: Izveidojiet paketi ar nosaukumu com.javatpoint.repository mapē src/main/java.

16. darbība: Izveidot a Repozitorijs saskarne. Mēs esam izveidojuši repozitorija saskarni ar nosaukumu Studentu krātuve iepakojumā com.javatpoint.repository. Tas paplašina Crud krātuve saskarne.

StudentRepository.java

 package com.javatpoint.repository; import org.springframework.data.repository.CrudRepository; import com.javatpoint.model.Student; public interface StudentRepository extends CrudRepository { } 

Tagad mēs konfigurēsim datu avotu URL, draivera klases nosaukums, lietotājvārds, un parole, iekš pielietojums.īpašības failu.

java vietējais datums

17. darbība: Atveriet pielietojums.īpašības failu un konfigurējiet tālāk norādītos rekvizītus.

pielietojums.īpašības

 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 

Piezīme: neaizmirstiet iespējot H2 konsoli.

Pēc visu klašu un pakotņu izveides projekta direktorijs izskatās šādi.

Spring Boot H2 datu bāze

Tagad mēs palaidīsim lietojumprogrammu.

18. darbība: Atvērt SpringBootH2DatabaseExampleApplication.java failu un palaidiet to kā Java lietojumprogrammu.

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); } } 

Nākamajā solī izmantosim atpūtas klientu Pastnieks par nosūtīšanu POSTĪT un GŪT pieprasījumu . Ja pastnieks jūsu sistēmā nav instalēts, veiciet tālāk norādītās darbības.

  • Lejupielādējiet Pastnieks no https://www.getpostman.com/downloads/ vai pārlūkprogrammā pievienojiet Google Chrome paplašinājumu https://bit.ly/1HCOCwF .
  • Palaist pastnieku un Pierakstīties . Izveidojiet lietotājvārdu. Mēs esam izveidojuši lietotāju ar vārdu javatpoint un noklikšķināja uz Iesniegt

19. darbība: Atveriet Pastnieks un rīkojieties šādi:

  • Izvēlieties POSTĪT
  • Izsauciet URL http://localhost:8080/student.
  • Izvēlieties Ķermenis
  • Atlasiet satura veidu JSON (lietojumprogramma/json).
  • Ievietojiet datus. Mēs esam ievietojuši pamattekstā šādus datus:
 { 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' } 
  • Noklikšķiniet uz Sūtīt

Kad pieprasījums ir veiksmīgi izpildīts, tas parāda Statuss: 200 OK . Tas nozīmē, ka ieraksts ir veiksmīgi ievietots datu bāzē.

Līdzīgi mēs esam ievietojuši šādus datus.

 { '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]' } 

Piekļūstam H2 konsolei, lai skatītu datus.

20. darbība: Atveriet pārlūkprogrammu un izsauciet URL http://localhost:8080/h2-console. Noklikšķiniet uz Savienot pogu, kā parādīts zemāk.

Spring Boot H2 datu bāze

Pēc noklikšķināšanas uz Savienot pogu, mēs redzam Students tabulu datubāzē, kā parādīts zemāk.

Spring Boot H2 datu bāze

21. darbība: Noklikšķiniet uz Students tabulu un pēc tam noklikšķiniet uz Skrien pogu. Tabulā ir parādīti dati, ko esam ievietojuši ķermenī.

Spring Boot H2 datu bāze

22. darbība: Atveriet Pastnieku un nosūtiet a GŪT pieprasījumu. Tas atgriež datus, ko esam ievietojuši datu bāzē.

Spring Boot H2 datu bāze

Nosūtīsim a GŪT pieprasījums ar URL http://localhost:8080/student/{id}. Mēs esam izsaukuši URL http://localhost:8080/student/3. Tas atgriež informāciju par studentu, kura ID ir 3.

Spring Boot H2 datu bāze

Līdzīgi varam nosūtīt arī a DZĒST pieprasījumu. Pieņemsim, ka mēs vēlamies izdzēst studenta ierakstu, kura ID ir 2.

Lai izdzēstu studenta ierakstu, nosūtiet a DZĒST pieprasījums ar URL http://localhost:8080/student/2. Mēs redzam, ka students, kura id ir 2 ir dzēsts no datu bāzes.

Spring Boot H2 datu bāze
Lejupielādējiet H2 datu bāzes piemēru projektu