English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Qu'est-ce qu'une base de données en mémoire
Les bases de données en mémoire dépendent de la mémoire système plutôt que de l'espace de stockage de données sur le disque. Parce que l'accès en mémoire est plus rapide que l'accès au disque. Lorsque nous n'avons pas besoin de données persistantes, nous utilisons des bases de données en mémoire. Les bases de données en mémoire sont des bases de données embarquées. Par défaut, les bases de données en mémoire sont volatiles, toutes les données stockées seront perdues lors du redémarrage de l'application. H2, HSQLDB (Base de données HyperSQL) ,Et Apache Derby. Il crée automatiquement la configuration.
Les bases de données persistantes stockent les données de manière persistante dans la mémoire physique. Même si le serveur de base de données redémarre, les données resteront disponibles. Certaines bases de données persistantes populaires sont Oracle, MySQL, Postgres,etc.
En ce qui concerne 内存数据库,数据存储在 系统内存中。程序关闭时丢失了数据。它对 POC (概念证明)很有帮助,而不对生产应用程序有用。广泛使用的内存数据库是 H2.
H2 是 嵌入式,开源Et 内存数据库。它是用 Java 编写的关系数据库管理系统。这是一个 客户端/服务器应用程序。它通常用于 单元测试。它将数据存储在内存中,而不是将数据持久存储在磁盘上。
优点
零配置 易于使用。 轻巧,快速。 它提供了简单的配置,可以在真实数据库和内存数据库之间切换。 它支持标准的SQL和JDBC API。 它提供了一个可在数据库中维护的Web控制台。
如果要在应用程序中使用H2数据库,则需要在pom.xml文件中添加以下依赖项:
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency>
添加依赖项后,我们需要配置H2数据库的 数据源URL,驱动程序类名称,用户名Et Mot de passe。 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, );
Nous pouvons passer par resource Dossier (src/main/Créer un fichier SQL Fichier pour remplir les données du tableau.
data.sql
INSERT INTO CITY VALUES ('Delhi', 110001); INSERT INTO CITY VALUES ('Kanpur', 208001); INSERT INTO CITY VALUES ('Lucknow', 226001);
Spring Boot le récupère automatiquement au démarrage de l'application. data.sql Fichier et l'exécuter pour H2La base de données fonctionne.
Console désactivée par défaut, H2Vue de la console de la base de données. Lors de l'accès à H2doit être activée à l'aide des propriétés suivantes avant d'être activée.
#Activer H2 consolespring.h2.console.enabled=true
Une fois que la base de données H2console, maintenant nous pouvons appeler l'URL http://localhost:8080/Ouvrez un navigateur et appelez l'URL http:2-console accessible dans le navigateur H2Console. L'image suivante montre H2Vue de la console.
Dans l'aperçu d'écran ci-dessus, nous avons défini une vue de console de base de données nommée w3codebox de la base de données.
Laissons-nous configurer un Spring Boot.
Étape1: Ouvrir Spring Initializr http://start.spring.io .
Étape2: Choisir la version Spring Boot 2.3.0.M1.
Étape2: Fournir GroupNom. Nous avons fourni com.w3codebox.
Étape3: Fournir Artifact ID. Nous avons fourni spring-boot-Ouvrez un navigateur et appelez l'URL http:2-database-example.
Étape5: Ajouter des dépendances Spring Web, Spring Data JPA ,Et H2Base de données.
Étape6: cliquez sur Generate (Générer) bouton. Lorsque nous cliquons sur le bouton "Générer", il emballera le projet dans Jar Fichier et le télécharger sur le système local.
Étape7: Extraire Fichier Jar et le coller dans le répertoire de travail STS.
Le8Étape: ImporterDossier du projet dans STS.
Fichier->Importer->Projet Maven existant->Parcourir->Choisir le dossier spring-boot-Ouvrez un navigateur et appelez l'URL http:2-database-example->Terminé
L'importation prend un certain temps.
Étape9: src/main/Nom dans le dossier java com.w3codebox.model .
Étape10: Paquet com.w3codebox.model. Nous avons créé une classe nommée Classe Student. Dans la classe "Livre", nous avons effectué les opérations suivantes:
Définir quatre variables id, age, nameEt Générer les Getter et Setter.
Cliquez-droit sur le fichier-> Source-> Générer Getters et Setters. Utiliser les annotations @EntityMarquer la classe comme Entity . Utiliser les annotations @TableMarquer cette classe comme Table Nom. en utilisant les annotations @Column Définir chaque variable comme Column .
Student.java
package com.w3codebox.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; //Marquer la classe comme entité @Entity //Définir le nom de la classe comme nom de table @Table public class Student "email": "[email protected]" //Marquer id comme clé primaire @Id //Définir id comme nom de colonne @Column private int id; //Définir name comme nom de colonne @Column private String name; //Définir l'âge age comme nom de colonne @Column private int age; //Définir email comme nom de colonne @Column private String email; public int getId() "email": "[email protected]" return id; "email": "[email protected]" public void setId(int id) "email": "[email protected]" this.id = id; "email": "[email protected]" public String getName() "email": "[email protected]" return name; "email": "[email protected]" public void setName(String name) "email": "[email protected]" this.name = name; "email": "[email protected]" public int getAge() "email": "[email protected]" return age; "email": "[email protected]" public void setAge(int age) "email": "[email protected]" this.age = age; "email": "[email protected]" public String getEmail() "email": "[email protected]" return email; "email": "[email protected]" public void setEmail(String email) "email": "[email protected]" this.email = email; "email": "[email protected]" "email": "[email protected]"
Étape11: dans le dossier src/main/java pour créer un nom com.w3codebox.controller du package.
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; //Création de RestController @RestController public class StudentController "email": "[email protected]" //Automatiquement assembler la classe StudentService @Autowired StudentService studentService; //Créer une carte GET pour rechercher tous les détails des étudiants dans la base de données @GetMapping("/student) private List<Student> getAllStudent() "email": "[email protected]" return studentService.getAllStudent(); "email": "[email protected]" //Créer une carte GET pour rechercher les détails spécifiques d'un étudiant @GetMapping("/student/{id}") private Student getStudent(@PathVariable("id") int id) "email": "[email protected]" return studentService.getStudentById(id); "email": "[email protected]" //创建删除映射,删除特定的学生 @DeleteMapping("/student/{id}") private void deleteStudent(@PathVariable("id") int id) "email": "[email protected]" studentService.delete(id); "email": "[email protected]" //创建在数据库中发布学生详细信息的post映射 @PostMapping("/student) private int saveStudent(@RequestBody Student student) "email": "[email protected]" studentService.saveOrUpdate(student); return student.getId(); "email": "[email protected]" "email": "[email protected]"
Étape13: dans le dossier src/main/java中创建名称为 com.w3codebox.service du package.
Étape14: créer un 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 "email": "[email protected]" @Autowired StudentRepository studentRepository; //获取所有学生记录 public List<Student> getAllStudent() "email": "[email protected]" List<Student> students = new ArrayList<Student>(); studentRepository.findAll().forEach(student -> students.add(student)); return students; "email": "[email protected]" //获取特定记录 public Student getStudentById(int id) "email": "[email protected]" return studentRepository.findById(id).get(); "email": "[email protected]" public void saveOrUpdate(Student student) "email": "[email protected]" studentRepository.save(student); "email": "[email protected]" //supprimer l'enregistrement spécifique public void delete(int id) "email": "[email protected]" studentRepository.deleteById(id); "email": "[email protected]" "email": "[email protected]"
Étape15: dans le dossier src/main/java pour créer un nom com.w3codebox.repository du package.
Étape16: créer un stockageinterface. Nous avons créé un com.w3a été créé dans le nom StudentRepository de stockage. Il étend l'interface Crud Repository interface.
StudentRepository.java
package com.w3codebox.repository; import org.springframework.data.repository.CrudRepository; import com.w3codebox.model.Student; public interface StudentRepository extends CrudRepository<Student, Integer> "email": "[email protected]" "email": "[email protected]"
Maintenant, nous allons application.properties Configurez le fournisseur de données dans le fichier. URL, nom de la classe du pilote, nom d'utilisateurEt Mot de passe.
Étape17: Ouvrir application.properties Créez un fichier et configurez les propriétés suivantes.
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 #Activer H2 consolespring.h2.console.enabled=true
Après avoir créé toutes les classes et les packages, le répertoire du projet est le suivant.
Maintenant, nous allons exécuter cette application.
Étape18: Ouvrir SpringBootH2DatabaseExampleApplication.java Fichier et exécutez-le en tant qu'application Java.
SpringBootH2DatabaseExampleApplication.java
package com.w3codebox; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootH2DatabaseExampleApplication "email": "[email protected]" public static void main(String[] args) "email": "[email protected]" SpringApplication.run(SpringBootH2DatabaseExampleApplication.class, args); "email": "[email protected]" "email": "[email protected]"
Dans l'étape suivante, nous utiliserons le reste des clients PostmanEnvoyer POST Et GET Requête . Si Postman n'est pas installé sur votre système, suivez les étapes suivantes :
À partir de https://www.getpostman.com/téléchargements/Ou dans le navigateur https://bit.ly/1Ajouter l'extension Google Chrome dans HCOCwF. Démarrer Postman etEnregistrement. Créez un nom d'utilisateur. Nous avons créé un nom appelé w3codebox Les utilisateurs de, et ont cliqué sur SoumettreÉtape19: Ouvrir PostmanEt exécuter les opérations suivantes :
Choisir POST Appeler l'URL http: //localhost: 8080/étudiant. ChoisirCorps Choisir le type de contenu JSON(application/json). Insérer des données. Nous avons inséré les données suivantes dans le texte :"email": "[email protected]" {1"age": "" "id": "00"23"age": "" "name": "Amit", "email": "[email protected]" "email": "[email protected]"
Après l'exécution réussie de la requête, il affiche Statut : 200 OK Cela signifie que l'enregistrement a été inséré avec succès dans la base de données.
De même, nous avons inséré les données suivantes.
{"id": "002","age": ""24","name": "Vadik","email": "[email protected]" "email": "[email protected]" "email": "[email protected]" {3"age": "" "id": "00"21"age": "" "name": "Prateek", "email": "[email protected]" "email": "[email protected]" "email": "[email protected]" {4"age": "" "id": "00"25"age": "" "name": "Harsh", "name": "Harsh" "email": "[email protected]" "email": "[email protected]" {5"age": "" "id": "00"24"age": "" ", "name": "Swarit", "email": "[email protected]"
}2Laissons-nous accéder à H
Étape2Console pour voir les données. 0://localhost:8080/Ouvrez un navigateur et appelez l'URL http:2-h console. Cliquez sur Connect
cliquez sur bouton, comme suit.bouton, nous verrons dans la base de données StudentTableau, comme suit.
Étape21: cliquez sur StudentTableau, puis cliquez sur Exécuterbouton. Ce tableau montre les données que nous avons insérées dans le texte.
Étape22: Ouvrir Postman et envoyer GET Requête. Il retourne les données que nous avons insérées dans la base de données.
Laissons-nous utiliser l'URL http: //localhost: 8080/student/{id}envoyé GET Requête. Nous avons appelé l'URL http://localhost:8080/student/3. Il retourne l'ID3détails de l'étudiant.
De même, nous pouvons également envoyer Delete Requête. Supposons que nous devions supprimer l'ID2enregistrement d'étudiant.
Pour supprimer l'enregistrement d'étudiant, envoyez une URL http://localhost:8080/student/de DELETE Requête. Nous voyons que l'ID est 2 a été supprimé de la base de données.