English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Что такое база данных в памяти
база данных в памяти зависит от системной памяти, а не от места для хранения данных на диске. Поскольку доступ к памяти быстрее, чем доступ к диску. Когда мы не нуждаемся в持久ном хранении данных, мы используем базу данных в памяти. База данных в памяти является встроенной базой данных. По умолчанию, база данных в памяти является нестабильной, и при перезапуске приложения все сохраненные данные будут утеряны. широко используемая база данных в памяти H2, HSQLDB (HyperSQL база данных)и , Apache Derby.
постоянность и база данных в памяти постоянные базы данных сохраняют данные в физической памяти. Даже если сервер базы данных будет отключен, данные будут доступны. Некоторые популярные постоянные базы данныхOracle, MySQL, Postgres,
в база данных в памятиданные хранятся в Система памятив. POC (концептуальное доказательство) полезно, но не подходит для производственных приложений. Широко используемая база данных в памяти H2.
H2 является встроенная, открытое исходное коди памятьбаза данных. Это реляционная система управления базами данных, написанная на Java. Это клиент/серверприложения. Оно обычно используется Тестирование единиц. Она хранит данные в памяти, а не сохраняет их на диске.
Преимущества
Без конфигурации Легко использовать. Легкая и быстрая. Она предоставляет простую конфигурацию, которая позволяет переключаться между реальной базой данных и базой данных в памяти. Она поддерживает стандартные SQL и JDBC API. Она предоставляет веб-консоль, которую можно использовать для управления базой данных.
Если вы хотите использовать базу данных H2 в приложении, то вам нужно добавить следующие зависимости в файл pom.xml:
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency>
После добавления зависимостей нам нужно настроить базу данных H2 URL источника данных, класса драйвера, имени пользователяи Пароль. Spring Boot предоставляет простой способ конфигурации application.properties этих свойств в файле.
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 в свойствах, mem является именем базы данных в памяти, а testdb Это имя базы данных в памяти. По умолчанию, архитектура предоставляемая H2. Мы также можем определить свою архитектуру и базу данных. По умолчанию имя пользователя sa пустой пароль означает пустопароль. Если вы хотите изменить имя пользователя и пароль, вы можете заменить эти значения.
Если вы хотите сохранить данные в базе данных H2, вам нужно будет сохранить данные в файле. Для этого мы должны изменить свойство URL источника данных.
#Сохранение данных spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata
В вышеуказанных свойствах, sampledata является именем файла.
Мы можем определить через resource в папке (src) создайте SQL файл для создания схемы (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, );
Мы можем определить через resource в папке (src/main/resource) создайте SQL файл для заполнения данных в таблице.
data.sql
INSERT INTO CITY VALUES ('Delhi', 110001); INSERT INTO CITY VALUES ('Kanpur', 208001); INSERT INTO CITY VALUES ('Lucknow', 226001);
Spring Boot автоматически подбирает data.sql файл и выполните его для базы данных H2.
По умолчанию, консоль базы данных H2 отключена. Перед доступом к базе данных H2我们必须 включить её с помощью следующих свойств.
# Включить H2 consolespring.h2.console.enabled=true
Как только был включен консоль H2, теперь мы можем через URL http://localhost:8080/h2-console посетить консоль H2 в браузере. На следующем рисунке показан вид консоли базы данных H2.
На экране-снимке выше мы определили имя w3codebox .
Давайте настроим Spring Boot.
Шаг 1: Откройте Spring Initializr http://start.spring.io .
步骤2: 选择Spring Boot版本 2.3.0.M1。
步骤2: 提供 Group名称。我们提供了 com.w3codebox。
步骤3: 提供 Artifact ID。我们提供了 spring-boot-h2-database-example。
步骤5: 添加依赖项 Spring Web,Spring Data JPA ,и H2数据库。
步骤6: Нажмите Generate (生成)按钮。当我们单击"生成"按钮时,它会将项目打包在 Jar 文件中,并将其下载到本地系统。
步骤7: 提取 Jar文件并将其粘贴到STS工作区中。
第8步: 导入项目文件夹到STS。
文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-h2-database-example->完成
导入需要一些时间。
步骤9: src/main/java文件夹中的名称 com.w3codebox.model
步骤10: 包 com.w3codebox.model中的类。 我们创建了名为 Student的类。 在"图书"类中,我们执行了以下操作:
定义四个变量 id, age, nameи 生成Getter和Setters。
右键单击文件->源->生成Getters和Setters。 использование анонимаций @Entity,将类标记为 Entity использование анонимаций @Table将该类标记为 Table 名称。 通过使用注解 @Column 将每个变量定义为 Column
Student.java
package com.w3codebox.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; //将类标记为实体 @Entity //定义类名为表名 @Table public class Student { //将id标记为主键 @Id //将id定义为列名 @Column private int id; //将name定义为列名 @Column private String name; //将年龄age设置为列名 @Column private int age; //email определено как имя столбца @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.w3codebox.controller пакета.
StudentController.java
package com.w3codebox.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.w3codebox.model.Student; import com.w3codebox.service.StudentService; // СозданиеRestController @RestController public class StudentController { // Автоматическая装配 класса StudentService @Autowired StudentService studentService; // Создание гет-маппинга для поиска всех студентов в базе данных @GetMapping("/student") private List<Student> getAllStudent() { return studentService.getAllStudent(); } // Создание гет-маппинга для получения детальной информации о конкретном студенте @GetMapping("/student/{id}") private Student getStudent(@PathVariable("id") int id) { return studentService.getStudentById(id); } // Создание маппинга для удаления конкретного студента @DeleteMapping("/student/{id}") private void deleteStudent(@PathVariable("id") int id) { studentService.delete(id); } // Создание пост-маппинга для публикации детальной информации о студенте в базе данных @PostMapping("/student") private int saveStudent(@RequestBody Student student) { studentService.saveOrUpdate(student); return student.getId(); } }
步骤13: в директории src/main/java中创建名称为 com.w3codebox.service пакета.
步骤14: создайте Service 类。我们在包 com.w3codebox.service。
StudentService.java 中创建了名为 StudentService 的服务类。
package com.w3codebox.service; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.w3codebox.model.Student; import com.w3codebox.repository.StudentRepository; @Service public class StudentService { @Autowired StudentRepository studentRepository; //获取所有学生记录 public List<Student> getAllStudent() { List<Student> students = new ArrayList<Student>(); studentRepository.findAll().forEach(student -> students.add(student)); return students; } //获取特定记录 public Student getStudentById(int id) { return studentRepository.findById(id).get(); } public void saveOrUpdate(Student student) { studentRepository.save(student); } //删除特定记录 public void delete(int id) { studentRepository.deleteById(id); } }
Шаг 15: в директории в директории com.w3codebox.repository пакета.
Шаг 16: создайте хранилищев пакете в пакете com.w3codebox.repository был создан интерфейс с именем StudentRepository интерфейс хранилища. он расширяет Crud Repository интерфейс.
StudentRepository.java
package com.w3codebox.repository; import org.springframework.data.repository.CrudRepository; import com.w3codebox.model.Student; public interface StudentRepository extends CrudRepository<Student, Integer> { }
Теперь мы настроим application.properties настройте источник данных в файле URL, имя класса драйвера, имя пользователяи Пароль
Шаг 17: откройте application.properties файл и настройте следующие свойства.
application.properties
spring.datasource.url=jdbc:h2:mem:w3codebox spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect # Включить H2 consolespring.h2.console.enabled=true
После создания всех классов и пакетов проектный каталог будет выглядеть следующим образом.
Теперь мы запустим это приложение.
Шаг 18: откройте SpringBootH2DatabaseExampleApplication.java файл и запустите его как Java-приложение.
SpringBootH2DatabaseExampleApplication.java
package com.w3codebox; 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); } }
в следующем шаге мы будем использовать оставшиеся клиенты Postmanотправить POST и GET запрос Если Postman не установлен на вашей системе, выполните следующие шаги:
ссылке https://www.getpostman.com/downloads/ или добавьте расширение Google Chrome по ссылке https://bit.ly/1HCOCwF в браузере. запустите Postman ирегистрацияСоздайте имя пользователя. Мы создали имя w3codebox пользователя, и нажмите Submitшаг 19: откройте Postmanи выполните следующие действия:
Выберите POST запустите URL http: //localhost: 8080/student. ВыберитеBody Выберите тип содержимого JSON(application/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. Нажмите Connect кнопка, как показано ниже.
Нажмите СоединениеНажмите кнопку, и мы увидим в базе данных StudentТаблица, как показано ниже.
Шаг 21: Нажмите StudentТаблица, затем нажмите Запусккнопка. Эта таблица показывает данные, которые мы вставили в текст.
Шаг 22: Откройте Postman и отправьте GET Запрос. Он вернул данные, которые мы вставили в базу данных.
Давайте отправим запрос с URL http://localhost: 8080/student/{id} GET Запрос. Мы вызвали URL http://localhost:8080/student/3. Он вернул详细信息 студента с ID 3.
Таким же образом, мы можем отправить Delete Запрос. Предположим, что мы хотим удалить запись студента с ID 2.
Чтобы удалить запись студента, отправьте запрос с URL http://localhost:8080/student/ DELETE Запрос. Мы видим ID в 2 студент был удален из базы данных.