logo

База даних Spring Boot H2

Що таке база даних в пам'яті

База даних у пам’яті покладається на системну пам’ять, а не на дисковий простір для зберігання даних. Тому що доступ до пам'яті швидше, ніж доступ до диска. Ми використовуємо базу даних у пам’яті, коли нам не потрібно зберігати дані. База даних у пам’яті є вбудованою базою даних. Бази даних у пам’яті за замовчуванням нестабільні, і всі збережені дані втрачаються під час перезапуску програми.

Широко використовуються бази даних в пам'яті H2, HSQLDB (База даних HyperSQL) , і Apache Derby. Він створює конфігурацію автоматично.

Постійність проти бази даних у пам’яті

Постійна база даних зберігає дані у фізичній пам’яті. Дані будуть доступні, навіть якщо сервер бази даних відхилено. Деякі популярні бази даних постійності Оракул, MySQL , Postgres , тощо

У випадку з база даних в пам'яті, сховище даних у системна пам'ять . Під час закриття програми дані були втрачені. Це корисно для МАЛО s (Proof of Concepts), не для виробничого застосування. Широко використовувана база даних в пам'яті H2.

Що таке база даних H2

H2 є вбудований, з відкритим кодом, і в пам'ять бази даних. Це система керування реляційною базою даних, написана на Java . Це клієнт/сервер додаток. Зазвичай використовується в модульне тестування . Він зберігає дані в пам’яті, а не на диску.

Переваги

  • Нульова конфігурація
  • Він простий у використанні.
  • Він легкий і швидкий.
  • Він забезпечує просту конфігурацію для перемикання між реальною базою даних і базою даних у пам’яті.
  • Він підтримує стандартний SQL і JDBC API.
  • Він надає веб-консоль для підтримки в базі даних.

Налаштувати базу даних H2

Якщо ми хочемо використовувати базу даних H2 у програмі, нам потрібно додати таку залежність у файл pom.xml:

 com.h2database h2 runtime 

Після додавання залежності нам потрібно налаштувати URL джерела даних, ім'я класу драйвера, ім'я користувача, і пароль бази даних H2. Spring Boot забезпечує простий спосіб налаштувати ці властивості додаток.властивості файл.

 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 

В spring.datasource.url власність, мем це ім'я бази даних у пам'яті та testdb це назва схеми, яку надає H2 за замовчуванням. Ми також можемо визначити нашу власну схему та базу даних. Ім'я користувача за замовчуванням на і порожній пароль позначає порожній пароль. Якщо ми хочемо змінити ім’я користувача та пароль, ми можемо змінити ці значення.

Збережіть дані в базі даних H2

Якщо ми хочемо зберегти дані в базі даних H2, нам слід зберігати дані у файлі. Щоб досягти того ж, нам потрібно змінити властивість URL-адреси джерела даних.

якщо Редьярд Кіплінг короткий зміст
 #persist the data spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata 

У наведеній вище властивості, вибіркові дані це ім'я файлу.

Створення схеми та заповнення даними

Ми можемо визначити схему, створивши a SQL файл у ресурс папка (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 ); 

Ми можемо заповнити дані в таблиці, створивши a SQL файл у ресурс папка (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 автоматично підбирає data.sql файл і запустіть його з базою даних H2 під час запуску програми.

Консоль H2

За замовчуванням консольний вигляд бази даних H2 вимкнено. Перш ніж отримати доступ до бази даних H2, ми повинні ввімкнути її за допомогою наступної властивості.

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

Після ввімкнення консолі H2 тепер ми можемо отримати доступ до консолі H2 у браузері, викликавши URL-адресу http://localhost:8080/h2-console. На наступному малюнку показано консольне подання бази даних H2.

База даних Spring Boot H2

На наведеному вище знімку екрана ми визначили нашу власну базу даних під назвою javatpoint .

Приклад Spring Boot H2

Давайте налаштуємо додаток Spring Boot з базою даних H2.

Крок 1: Відкрийте Spring Initializr http://start.spring.io.

крок 2: Виберіть версію Spring Boot 2.3.0.M1.

крок 2: Надайте Група назва. Ми забезпечили com.javatpoint.

крок 3: Надайте Артефакт ID. Ми забезпечили spring-boot-h2-database-example.

синхронізація потоків

крок 5: Додайте залежності Spring Web, Spring Data JPA, і База даних H2.

Крок 6: Натисніть на Генерувати кнопку. Коли ми натискаємо кнопку Generate, проект обертається в a баночка файл і завантажує його в локальну систему.

База даних Spring Boot H2

Крок 7: Екстракт файл Jar і вставте його в робочу область STS.

Крок 8: Імпорт папку проекту в STS.

Файл -> Імпорт -> Існуючі проекти Maven -> Огляд -> Виберіть папку spring-boot-h2-database-example -> Готово

Імпорт займає деякий час.

Крок 9: Створіть пакет із назвою com.javatpoint.model в папці src/main/java.

Крок 10: Створіть клас моделі в пакеті com.javatpoint.model. Ми створили клас моделі з назвою студент. На уроці «Книги» ми зробили наступне:

  • Визначте чотири змінні id, вік, ім'я, і
  • Створення геттерів і сеттерів.
    Клацніть правою кнопкою миші на файлі -> Джерело -> Створити Getters і Setters.
  • Позначте клас як Сутність за допомогою анотації @Entity.
  • Позначте клас як Таблиця назву за допомогою анотації @Таблиця.
  • Визначте кожну змінну як Колонка за допомогою анотації @Колонка.

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: Створіть пакет із назвою com.javatpoint.controller в папці src/main/java.

Крок 12: Створіть у пакеті клас Controller com.javatpoint.controller . Ми створили клас контролера з назвою Студентський контролер . У класі StudentController ми зробили наступне:

  • Позначте клас як RestController за допомогою анотації @RestController.
  • Автопроводка СтудентСервіс класу за допомогою анотації @Autowired .
  • Визначте такі методи:
      getAllStudent():Він повертає список усіх студентів.
  • getStudent():Він повертає інформацію про студента, яку ми вказали в змінній шляху. Ми передали id як аргумент за допомогою анотації @PathVariable. Анотація вказує, що параметр методу має бути прив’язаний до змінної шаблону URI.deleteStudent():Він видаляє конкретного студента, якого ми вказали у змінній шляху.saveStudent():Це зберігає деталі студента. Анотація @RequestBody вказує, що параметр методу має бути прив’язаний до тіла веб-запиту.

StudentController.java

програмування r в c
 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: Створіть пакет із назвою com.javatpoint.service в папці src/main/java.

бульбашкове сортування java

Крок 14: Створити Сервіс клас. Ми створили клас обслуговування з назвою СтудентСервіс в упаковці 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: Створіть пакет із назвою com.javatpoint.repository в папці src/main/java.

Крок 16: Створити Репозиторій інтерфейс. Ми створили інтерфейс сховища з назвою StudentRepository в упаковці com.javatpoint.repository. Це розширює Репозиторій Crud інтерфейс.

StudentRepository.java

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

Тепер ми налаштуємо джерело даних URL-адреса, ім'я класу драйвера, ім'я користувача, і пароль, в додаток.властивості файл.

Крок 17: Відкрийте додаток.властивості файл і налаштуйте такі властивості.

додаток.властивості

 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 

Примітка: не забудьте ввімкнути консоль H2.

Після створення всіх класів і пакетів каталог проекту виглядає так.

База даних Spring Boot H2

Тепер ми запустимо додаток.

Крок 18: ВІДЧИНЕНО SpringBootH2DatabaseExampleApplication.java файл і запустіть його як програму Java.

SpringBootH2DatabaseExampleApplication.java

пустота 0
 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); } } 

На наступному кроці ми будемо використовувати rest client Листоноша для відправки ПОСТ і ОТРИМАТИ запит . Якщо у вашій системі не встановлено Postman, виконайте наведені нижче дії.

  • Завантажити листоношу з https://www.getpostman.com/downloads/ або додати розширення Google Chrome у браузер https://bit.ly/1HCOCwF .
  • Запустіть Postman і Реєстрація . Створіть ім'я користувача. Ми створили користувача з іменем javatpoint і натиснув Надіслати

Крок 19: Відкрийте Листоноша і виконайте наступне:

  • Виберіть ПОСТ
  • Викличте URL-адресу http://localhost:8080/student.
  • Виберіть Тіло
  • Виберіть тип вмісту JSON (програма/json).
  • Вставте дані. Ми вставили такі дані в тіло:
 { 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' } 
  • Натисніть на Надіслати

Коли запит успішно виконано, він показує Статус: 200 OK . Це означає, що запис успішно вставлено в базу даних.

Так само ми вставили наступні дані.

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

Давайте відкриємо консоль H2, щоб переглянути дані.

Крок 20: Відкрийте браузер і викличте URL-адресу http://localhost:8080/h2-console. Натисніть на Підключитися кнопку, як показано нижче.

База даних Spring Boot H2

Після натискання на Підключитися кнопку, ми бачимо студент у базі даних, як показано нижче.

База даних Spring Boot H2

Крок 21: Натисніть на студент таблиці, а потім натисніть на бігти кнопку. У таблиці показано дані, які ми вставили в тіло.

База даних Spring Boot H2

Крок 22: Відкрийте листоношу та надішліть a ОТРИМАТИ запит. Він повертає дані, які ми вставили в базу даних.

База даних Spring Boot H2

Давайте надішлемо a ОТРИМАТИ запит із URL-адресою http://localhost:8080/student/{id}. Ми викликали URL http://localhost:8080/student/3. Він повертає деталі студента, ідентифікатор якого дорівнює 3.

База даних Spring Boot H2

Так само ми можемо надіслати a ВИДАЛИТИ запит. Припустімо, ми хочемо видалити запис студента з ідентифікатором 2.

Щоб видалити запис студента, надішліть a ВИДАЛИТИ запит із URL-адресою http://localhost:8080/student/2. Ми бачимо, що студент, чий id 2 було видалено з бази даних.

База даних Spring Boot H2
Завантажити приклад проекту бази даних H2