English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Outils en ligne2数据库

SpringBoot H

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.

Persistant et base de données en mémoire

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数据库

H2 嵌入式,开源Et 内存数据库。它是用 Java 编写的关系数据库管理系统。这是一个 客户端/服务器应用程序。它通常用于 单元测试。它将数据存储在内存中,而不是将数据持久存储在磁盘上。

优点

零配置 易于使用。 轻巧,快速。 它提供了简单的配置,可以在真实数据库和内存数据库之间切换。 它支持标准的SQL和JDBC API。 它提供了一个可在数据库中维护的Web控制台。

配置H2数据库

如果要在应用程序中使用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数据库中

如果要将数据保留在在H2数据库中,我们应该将数据存储在一个文件中。为此,我们需要更改数据源的 URL 属性。

#保存数据
spring.datasource.url=jdbc:h2:file:/data/sampledata
spring.datasource.url=jdbc:h2:C:/data/sampledata

在上面的属性中, sampledata 是一个文件名。

创建Schema构并填充数据

我们可以定义通过在 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.

H2Console

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.

Spring Boot H2Exemple

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.  

Étape12: Dans le paquet   com.w3codebox.controller Créer une classe Controller dans   StudentController Classe contrôleur. Dans la classe StudentController, nous avons accompli les opérations suivantes:Utiliser les annotations @RestController marque la classe comme RestController . Utiliser les annotations @Autowired Annotation automatique StudentService Classe. Définir les méthodes suivantes: getAllStudent(): Il renvoie la liste de tous les étudiants. getStudent(): Il renvoie les détails de l'étudiant spécifié dans le variable de chemin. En utilisant l'annotation @PathVariable, nous avons passé l'id en tant que paramètre. L'annotation indique que le paramètre de méthode doit être lié au modèle de URI. deleteStudent(): Il supprime l'étudiant spécifique indiqué dans le variable de chemin. saveStudent(): il conserve les détails des étudiants. L'annotation @RequestBody indique que les paramètres de méthode doivent être liés au corps de la requête Web.

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
Attention : N'oubliez pas d'activer H2Console.

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]"
CliquezEnvoyer

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.