Какво представлява базата данни в паметта
Базата данни в паметта разчита на системната памет за разлика от дисковото пространство за съхранение на данни. Тъй като достъпът до паметта е по-бърз от достъпа до диска. Използваме базата данни в паметта, когато не е необходимо да съхраняваме данните. Базата данни в паметта е вградена база данни. Базите данни в паметта са непостоянни по подразбиране и всички съхранени данни се губят, когато рестартираме приложението.
Широко използваните бази данни в паметта са 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.
В горната екранна снимка сме дефинирали собствена база данни с име 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 Буркан файл и го изтегля в локалната система.
Стъпка 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(): Връща списък на всички студенти.
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 конзолата.
След създаването на всички класове и пакети, директорията на проекта изглежда по следния начин.
Сега ще стартираме приложението.
Стъпка 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. Кликнете върху Свържете се бутон, както е показано по-долу.
След като щракнете върху Свържете се бутон, виждаме Студент таблица в базата данни, както е показано по-долу.
Стъпка 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. Виждаме, че студентът, чиято идентификация е 2 е изтрит от базата данни.
Изтеглете примерен проект за база данни H2