logo

Baza danych Spring Boot H2

Co to jest baza danych w pamięci

Baza danych w pamięci opiera się na pamięci systemowej, a nie na przestrzeni dyskowej do przechowywania danych. Ponieważ dostęp do pamięci jest szybszy niż dostęp do dysku. Z bazy danych w pamięci korzystamy, gdy nie musimy utrwalać danych. Baza danych w pamięci jest wbudowaną bazą danych. Bazy danych w pamięci są domyślnie niestabilne, a wszystkie przechowywane dane tracą po ponownym uruchomieniu aplikacji.

Powszechnie stosowanymi bazami danych w pamięci są H2, HSQLDB (Baza danych HyperSQL) , I Derby Apache'a. Tworzy konfigurację automatycznie.

Trwałość a baza danych w pamięci

Trwała baza danych przechowuje dane w pamięci fizycznej. Dane będą dostępne nawet w przypadku odbicia serwera bazy danych. Niektóre popularne bazy danych trwałości to Wyrocznia, MySQL-a , Postgres , itp.

W przypadku baza danych w pamięci, magazyn danych w pamięć systemowa . Stracił dane po zamknięciu programu. Jest to pomocne dla MAŁY s (Weryfikacja koncepcji), a nie do zastosowań produkcyjnych. Powszechnie stosowaną bazą danych w pamięci jest H2.

zablokować aplikację na Androida

Co to jest baza danych H2

H2 jest osadzone, open source, I w pamięci Baza danych. Jest to napisany w języku relacyjnym system zarządzania bazami danych Jawa . To jest klient/serwer aplikacja. Jest powszechnie stosowany w testów jednostkowych . Przechowuje dane w pamięci, a nie utrwala dane na dysku.

Zalety

  • Konfiguracja zerowa
  • Jest łatwy w użyciu.
  • Jest lekki i szybki.
  • Zapewnia prostą konfigurację umożliwiającą przełączanie pomiędzy prawdziwą bazą danych a bazą danych przechowywaną w pamięci.
  • Obsługuje standardowe API SQL i JDBC.
  • Udostępnia konsolę internetową do utrzymywania w bazie danych.

Skonfiguruj bazę danych H2

Jeśli chcemy wykorzystać w aplikacji bazę danych H2 musimy dodać w pliku pom.xml następującą zależność:

 com.h2database h2 runtime 

Po dodaniu zależności musimy dokonać konfiguracji adres URL źródła danych, nazwa klasy sterownika, nazwa użytkownika, I hasło bazy danych H2. Spring Boot zapewnia łatwy sposób konfiguracji tych właściwości w właściwości.aplikacji plik.

 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 

w wiosna.datasource.url nieruchomość, pam to nazwa bazy danych znajdującej się w pamięci oraz testdb to domyślnie nazwa schematu udostępnianego przez H2. Możemy również zdefiniować własny schemat i bazę danych. Domyślna nazwa użytkownika to NA a puste hasło oznacza pusty hasło. Jeśli chcemy zmienić nazwę użytkownika i hasło, możemy zastąpić te wartości.

Utrwalaj dane w bazie danych H2

Jeśli chcemy utrwalić dane w bazie H2, powinniśmy zapisać je w pliku. Aby osiągnąć to samo, musimy zmienić właściwość adresu URL źródła danych.

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

W powyższej nieruchomości, przykładowe dane to nazwa pliku.

Utwórz schemat i wypełnij dane

Możemy zdefiniować schemat, tworząc plik SQL-a plik w ratunek folder (src/main/resource).

schemat.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 ); 

Dane w tabeli możemy wypełnić tworząc plik SQL-a plik w ratunek folder (src/main/resource).

dane.sql

 INSERT INTO CITY VALUES (11, 'Delhi', 110001); INSERT INTO CITY VALUES (12, 'Kanpur', 208001); INSERT INTO CITY VALUES (13, 'Lucknow', 226001); 

Spring Boot automatycznie pobiera plik dane.sql i uruchom go w bazie danych H2 podczas uruchamiania aplikacji.

Konsola H2

Domyślnie widok konsoli bazy danych H2 jest wyłączony. Przed uzyskaniem dostępu do bazy danych H2 musimy ją włączyć, korzystając z poniższej właściwości.

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

Po włączeniu konsoli H2 możemy teraz uzyskać dostęp do konsoli H2 w przeglądarce, wywołując adres URL http://localhost:8080/h2-console. Poniższy rysunek przedstawia widok konsoli bazy danych H2.

Baza danych Spring Boot H2

Na powyższym zrzucie ekranu zdefiniowaliśmy własną bazę danych o nazwie javatpoint .

Przykład Spring Boot H2

Skonfigurujmy aplikację Spring Boot z bazą danych H2.

Krok 1: Otwórz Spring Inicjalizator http://start.spring.io .

Krok 2: Wybierz wersję Spring Boot 2.3.0.M1.

Krok 2: Zapewnić Grupa nazwa. Dostarczyliśmy com.javatpoint.

Krok 3: Zapewnić Artefakt ID. Dostarczyliśmy przykład bazy danych spring-boot-h2.

przejście przezroczystości CSS

Krok 5: Dodaj zależności Spring Web, Spring Data JPA, I Baza danych H2.

Krok 6: Kliknij na Generować przycisk. Kiedy klikniemy przycisk Generuj, projekt zostanie zawinięty w plik a Słoik plik i pobiera go do systemu lokalnego.

Baza danych Spring Boot H2

Krok 7: Wyciąg plik Jar i wklej go do obszaru roboczego STS.

Krok 8: Import folder projektu do STS.

Plik -> Importuj -> Istniejące projekty Maven -> Przeglądaj -> Wybierz folder spring-boot-h2-database-example -> Zakończ

Importowanie zajmuje trochę czasu.

Krok 9: Utwórz pakiet o nazwie com.javatpoint.model w folderze src/główny/java.

Krok 10: Utwórz klasę modelu w pakiecie com.javatpoint.model. Stworzyliśmy klasę modelu o nazwie Student. Na zajęciach Książki wykonaliśmy następujące czynności:

  • Zdefiniuj cztery zmienne identyfikator, wiek, imię, I
  • Generowanie pobierających i ustawiających.
    Kliknij plik prawym przyciskiem myszy -> Źródło -> Generuj moduły pobierające i ustawiające.
  • Oznacz klasę jako Podmiot za pomocą adnotacji @Podmiot.
  • Oznacz klasę jako Tabela nazwę, korzystając z adnotacji @Tabela.
  • Zdefiniuj każdą zmienną jako Kolumna za pomocą adnotacji @Kolumna.

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

Krok 11: Utwórz pakiet o nazwie com.javatpoint.controller w folderze src/główny/java.

Krok 12: Utwórz klasę kontrolera w pakiecie com.javatpoint.controller . Stworzyliśmy klasę kontrolera o nazwie Kontroler Studenta . W klasie StudentController wykonaliśmy następujące czynności:

  • Oznacz klasę jako Kontroler odpoczynku za pomocą adnotacji @RestController.
  • Automatyczne podłączenie Usługa studencka class za pomocą adnotacji @Autowired .
  • Zdefiniuj następujące metody:
      getAllStudent():Zwraca listę wszystkich uczniów.
  • pobierzStudenta():Zwraca szczegółowe informacje o uczniu, które określiliśmy w zmiennej ścieżki. Przekazaliśmy id jako argument, używając adnotacji @PathVariable. Adnotacja wskazuje, że parametr metody powinien być powiązany ze zmienną szablonu URI.usuń Ucznia():Usuwa konkretnego ucznia, którego określiliśmy w zmiennej ścieżki.zapiszStudenta():Zapisuje szczegóły ucznia. Adnotacja @RequestBody wskazuje, że parametr metody powinien być powiązany z treścią żądania internetowego.

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: Utwórz pakiet o nazwie com.javatpoint.service w folderze src/główny/java.

Krok 14: Stwórz Praca klasa. Stworzyliśmy klasę usług o nazwie Usługa studencka w paczce com.javatpoint.service.

StudentService.java

r w programowaniu c
 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: Utwórz pakiet o nazwie com.javatpoint.repository w folderze src/główny/java.

Krok 16: Stwórz Magazyn interfejs. Stworzyliśmy interfejs repozytorium o nazwie Repozytorium Studentów w paczce com.javatpoint.repository. Przedłuża Repozytorium Cruda interfejs.

StudentRepository.java

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

Teraz skonfigurujemy źródło danych Adres URL, nazwa klasy sterownika, nazwa użytkownika, I hasło, w właściwości.aplikacji plik.

Krok 17: Otworzyć właściwości.aplikacji plik i skonfiguruj następujące właściwości.

właściwości.aplikacji

 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 

Uwaga: Nie zapomnij włączyć konsoli H2.

Po utworzeniu wszystkich klas i pakietów katalog projektu wygląda następująco.

Baza danych Spring Boot H2

Teraz uruchomimy aplikację.

Krok 18: otwarty SpringBootH2DatabaseExampleApplication.java plik i uruchom go jako aplikację Java.

SpringBootH2DatabaseExampleApplication.java

pełna forma ssh
 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); } } 

W następnym kroku użyjemy klienta rest Listonosz za przesłanie POST I DOSTAWAĆ wniosek . Jeśli Postman nie jest zainstalowany w Twoim systemie, wykonaj poniższe czynności:

Krok 19: Otworzyć Listonosz i wykonaj następujące czynności:

  • Wybierz POST
  • Wywołaj adres URL http://localhost:8080/student.
  • Wybierz Ciało
  • Wybierz typ zawartości JSON (aplikacja/json).
  • Wstaw dane. W treści umieściliśmy następujące dane:
 { 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' } 
  • Kliknij na Wysłać

Gdy żądanie zostanie pomyślnie wykonane, zostanie wyświetlony komunikat Stan:200 OK . Oznacza to, że rekord został pomyślnie umieszczony w bazie danych.

Podobnie wstawiliśmy następujące dane.

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

Uzyskajmy dostęp do konsoli H2, aby zobaczyć dane.

Krok 20: Otwórz przeglądarkę i wywołaj adres URL http://localhost:8080/h2-console. Kliknij na Łączyć przycisk, jak pokazano poniżej.

Baza danych Spring Boot H2

Po kliknięciu na Łączyć przycisk, widzimy Student tabelę w bazie danych, jak pokazano poniżej.

Baza danych Spring Boot H2

Krok 21: Kliknij na Student tabeli, a następnie kliknij przycisk Uruchomić przycisk. Tabela pokazuje dane, które umieściliśmy w treści.

Baza danych Spring Boot H2

Krok 22: Otwórz Listonosza i wyślij DOSTAWAĆ wniosek. Zwraca dane, które umieściliśmy w bazie danych.

Baza danych Spring Boot H2

Wyślijmy DOSTAWAĆ żądanie za pomocą adresu URL http://localhost:8080/student/{id}. Wywołaliśmy adres URL http://localhost:8080/student/3. Zwraca szczegółowe informacje o uczniu, którego identyfikator wynosi 3.

Baza danych Spring Boot H2

Podobnie możemy również wysłać plik USUWAĆ wniosek. Załóżmy, że chcemy usunąć rekord ucznia, którego identyfikator to 2.

Aby usunąć rekord ucznia, wyślij USUWAĆ żądanie za pomocą adresu URL http://localhost:8080/student/2. Widzimy, że student, którego id to 2 został usunięty z bazy danych.

Baza danych Spring Boot H2
Pobierz przykładowy projekt bazy danych H2