logo

Spring Boot H2 база данни

Какво представлява базата данни в паметта

Базата данни в паметта разчита на системната памет за разлика от дисковото пространство за съхранение на данни. Тъй като достъпът до паметта е по-бърз от достъпа до диска. Използваме базата данни в паметта, когато не е необходимо да съхраняваме данните. Базата данни в паметта е вградена база данни. Базите данни в паметта са непостоянни по подразбиране и всички съхранени данни се губят, когато рестартираме приложението.

Широко използваните бази данни в паметта са H2, HSQLDB (база данни HyperSQL) , и Apache Derby. Той създава конфигурацията автоматично.

Устойчивост срещу база данни в паметта

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

В случая на база данни в паметта, хранилище на данни в системна памет . Той загуби данните, когато програмата беше затворена. Полезно е за МАЛКО s (Доказателство за концепции), не за производствено приложение. Широко използваната база данни в паметта е 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 предоставя по подразбиране. Можем също така да дефинираме собствена схема и база данни. Потребителското име по подразбиране е На и празната парола означава an празен парола. Ако искаме да променим потребителското име и паролата, можем да заменим тези стойности.

Запазете данните в H2 база данни

Ако искаме да запазим данните в базата данни H2, трябва да съхраняваме данните във файл. За да постигнем същото, трябва да променим URL свойството на източника на данни.

java низ съдържа
 #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: Осигурете на Артефакт Документ за самоличност. Осигурили сме spring-boot-h2-database-example.

балонно сортиране в алгоритъма

Стъпка 5: Добавете зависимостите Spring Web, Spring Data JPA, и H2 база данни.

Стъпка 6: Кликнете върху Генерирай бутон. Когато щракнем върху бутона Генериране, той обвива проекта в a Буркан файл и го изтегля в локалната система.

Spring Boot H2 база данни

Стъпка 7: Екстракт файла Jar и го поставете в STS работното пространство.

Стъпка 8: Импортиране папката на проекта в STS.

Файл -> Импортиране -> Съществуващи проекти на Maven -> Преглед -> Изберете папката spring-boot-h2-database-example -> Край

Импортирането отнема известно време.

Стъпка 9: Създайте пакет с името com.javatpoint.model в папката src/основен/java.

Стъпка 10: Създайте клас модел в пакета com.javatpoint.model. Създадохме клас модел с името Студент. В клас Книги направихме следното:

  • Дефинирайте четири променливи ID, възраст, име, и
  • Генерирайте Getters и Setters.
    Щракнете с десния бутон върху файла -> Източник -> Генериране на Getters и Setters.
  • Маркирайте класа като Обект с помощта на анотацията @Entity.
  • Маркирайте класа като Таблица име чрез използване на анотацията @Таблица.
  • Дефинирайте всяка променлива като Колона с помощта на анотацията @Колона.

Студент.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/основен/java.

Стъпка 12: Създайте клас контролер в пакета com.javatpoint.controller . Създадохме клас контролер с името Студентски контролер . В класа StudentController направихме следното:

  • Маркирайте класа като RestController с помощта на анотацията @RestController.
  • Автоматично свързване на StudentService клас с помощта на анотацията @Autowired .
  • Определете следните методи:
      getAllStudent():Връща списък на всички студенти.
  • getStudent():Той връща подробности за ученик, които сме посочили в променливата на пътя. Предадохме id като аргумент с помощта на анотацията @PathVariable. Анотацията показва, че параметърът на метода трябва да бъде обвързан с променлива на URI шаблон.deleteStudent():Той изтрива конкретен ученик, който сме посочили в променливата на пътя.saveStudent():Спестява детайлите на ученика. Анотацията @RequestBody показва, че параметърът на метода трябва да бъде обвързан с тялото на уеб заявката.

StudentController.java

за цикъл 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: Създайте пакет с името com.javatpoint.service в папката src/основен/java.

превключване на java програмиране

Стъпка 14: Създавам Обслужване клас. Създадохме сервизен клас с името StudentService в опаковката 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/основен/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

жизнен цикъл на разработка на софтуер
 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 .
  • Стартирайте пощальона и Регистрирай се . Създайте потребителско име. Създадохме потребител с името javatpoint и щракнете върху Изпращане

Стъпка 19: Отвори Пощальон и направете следното:

  • Изберете ПУБЛИКУВАНЕ
  • Извикайте URL адреса http://localhost:8080/student.
  • Изберете Тяло
  • Изберете Тип съдържание JSON (приложение/json).
  • Въведете данните. Вмъкнахме следните данни в тялото:
 { 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' } 
  • Кликнете върху Изпратете

Когато заявката е изпълнена успешно, тя показва Статус: 200 ОК . Това означава, че записът е бил успешно вмъкнат в базата данни.

По същия начин сме въвели следните данни.

 { '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. Виждаме, че студентът, чиято идентификация е 2 е изтрит от базата данни.

Spring Boot H2 база данни
Изтеглете примерен проект за база данни H2