Що таке база даних в пам'яті
База даних у пам’яті покладається на системну пам’ять, а не на дисковий простір для зберігання даних. Тому що доступ до пам'яті швидше, ніж доступ до диска. Ми використовуємо базу даних у пам’яті, коли нам не потрібно зберігати дані. База даних у пам’яті є вбудованою базою даних. Бази даних у пам’яті за замовчуванням нестабільні, і всі збережені дані втрачаються під час перезапуску програми.
Широко використовуються бази даних в пам'яті 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.
На наведеному вище знімку екрана ми визначили нашу власну базу даних під назвою 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 баночка файл і завантажує його в локальну систему.
Крок 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(): Він повертає список усіх студентів.
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.
Після створення всіх класів і пакетів каталог проекту виглядає так.
Тепер ми запустимо додаток.
Крок 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. Натисніть на Підключитися кнопку, як показано нижче.
Після натискання на Підключитися кнопку, ми бачимо студент у базі даних, як показано нижче.
Крок 21: Натисніть на студент таблиці, а потім натисніть на бігти кнопку. У таблиці показано дані, які ми вставили в тіло.
Крок 22: Відкрийте листоношу та надішліть a ОТРИМАТИ запит. Він повертає дані, які ми вставили в базу даних.
Давайте надішлемо a ОТРИМАТИ запит із URL-адресою http://localhost:8080/student/{id}. Ми викликали URL http://localhost:8080/student/3. Він повертає деталі студента, ідентифікатор якого дорівнює 3.
Так само ми можемо надіслати a ВИДАЛИТИ запит. Припустімо, ми хочемо видалити запис студента з ідентифікатором 2.
Щоб видалити запис студента, надішліть a ВИДАЛИТИ запит із URL-адресою http://localhost:8080/student/2. Ми бачимо, що студент, чий id 2 було видалено з бази даних.
Завантажити приклад проекту бази даних H2