Hvad er databasen i hukommelsen
In-memory database er afhængig af systemhukommelse i modsætning til diskplads til lagring af data. Fordi hukommelsesadgang er hurtigere end diskadgang. Vi bruger in-memory-databasen, når vi ikke behøver at bevare dataene. In-memory-databasen er en indlejret database. Databaserne i hukommelsen er som standard flygtige, og alle lagrede data tabes, når vi genstarter applikationen.
De meget anvendte in-memory databaser er H2, HSQLDB (HyperSQL-database) , og Apache Derby. Det opretter konfigurationen automatisk.
Persistens vs. In-memory Database
Den vedvarende database bevarer dataene i den fysiske hukommelse. Dataene vil være tilgængelige, selvom databaseserveren afvises. Nogle populære persistensdatabaser er Oracle, MySQL , Postgres , etc.
I tilfælde af in-memory database, datalager i systemhukommelse . Den mistede dataene, da programmet blev lukket. Det er nyttigt for LILLE s (Proof of Concepts), ikke til en produktionsapplikation. Den meget brugte in-memory database er H2.
Hvad er H2-databasen
H2 er en indlejret, open source, og i hukommelsen database. Det er et relationelt databasestyringssystem skrevet i Java . Det er en klient/server Ansøgning. Det bruges generelt i enhedstest . Det gemmer data i hukommelsen, ikke bevarer dataene på disken.
Fordele
- Nul konfiguration
- Den er nem at bruge.
- Den er let og hurtig.
- Det giver enkel konfiguration til at skifte mellem en rigtig database og en database i hukommelsen.
- Det understøtter standard SQL og JDBC API.
- Det giver en webkonsol til at vedligeholde i databasen.
Konfigurer H2-database
Hvis vi vil bruge H2-databasen i en applikation, skal vi tilføje følgende afhængighed i filen pom.xml:
com.h2database h2 runtime
Efter at have tilføjet afhængigheden, skal vi konfigurere datakilde-URL, førerklassenavn, brugernavn, og adgangskode af H2 database. Spring Boot giver en nem måde at konfigurere disse egenskaber på applikationsegenskaber fil.
string.replaceall i java
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
I den spring.datasource.url ejendom, mem er navnet på en database i hukommelsen og testdb er navnet på det skema, som H2 leverer som standard. Vi kan også definere vores eget skema og database. Standardbrugernavnet er på og den tomme adgangskode angiver en tom adgangskode. Hvis vi ønsker at ændre brugernavn og adgangskode, kan vi tilsidesætte disse værdier.
Bevar dataene i H2-databasen
Hvis vi ønsker at bevare dataene i H2-databasen, bør vi gemme data i en fil. For at opnå det samme skal vi ændre datakildens URL-egenskab.
#persist the data spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata
I ovennævnte ejendom er prøvedata er et filnavn.
Opret skema og udfyld data
Vi kan definere skema ved at oprette en SQL fil i ressource mappe (src/main/ressource).
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 );
Vi kan udfylde data i tabellen ved at oprette en SQL fil i ressource mappe (src/main/ressource).
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 opfanger automatisk data.sql fil og kør den mod H2-databasen under applikationsstart.
H2 konsol
Som standard er konsolvisningen af H2-databasen deaktiveret. Før vi får adgang til H2-databasen, skal vi aktivere den ved at bruge følgende egenskab.
#enabling the H2 console spring.h2.console.enabled=true
Når vi har aktiveret H2-konsollen, kan vi nu få adgang til H2-konsollen i browseren ved at kalde URL'en http://localhost:8080/h2-console. Følgende figur viser konsolvisningen af H2-databasen.
I ovenstående skærmbillede har vi defineret vores egen database ved navn javatpoint .
Eksempel på fjederstøvle H2
Lad os opsætte en Spring Boot-applikation med H2-databasen.
Trin 1: Åbn Spring Initializr http://start.spring.io.
Trin 2: Vælg Spring Boot-versionen 2.3.0.M1.
java enums
Trin 2: Giv den Gruppe navn. Vi har ydet com.javatpoint.
Trin 3: Giv den Artefakt Id. Vi har ydet spring-boot-h2-database-eksempel.
Trin 5: Tilføj afhængighederne Spring Web, Spring Data JPA, og H2 Database.
Trin 6: Klik på Frembringe knap. Når vi klikker på knappen Generer, omslutter det projektet i en Krukke fil og downloader den til det lokale system.
Trin 7: Uddrag Jar-filen og indsæt den i STS-arbejdsområdet.
Trin 8: Importere projektmappen til STS.
Fil -> Importer -> Eksisterende Maven-projekter -> Gennemse -> Vælg mappen spring-boot-h2-database-example -> Afslut
Det tager lidt tid at importere.
Trin 9: Opret en pakke med navnet com.javatpoint.model i mappen src/main/java.
Trin 10: Opret en modelklasse i pakken com.javatpoint.model. Vi har lavet modelklasse med navnet Studerende. I klassen Bøger har vi gjort følgende:
- Definer fire variable id, alder, navn, og
- Generer Getters og Settere.
Højreklik på filen -> Kilde -> Generer Getters and Setters. - Marker klassen som Enhed ved at bruge anmærkningen @Enhed.
- Marker klassen som Bord navn ved hjælp af annoteringen @Bord.
- Definer hver variabel som Kolonne ved at bruge anmærkningen @Kolonne.
Student.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; } }
Trin 11: Opret en pakke med navnet com.javatpoint.controller i mappen src/main/java.
hvad er orakel
Trin 12: Opret en Controller-klasse i pakken com.javatpoint.controller . Vi har lavet controller klasse med navnet StudentController . I StudentController-klassen har vi gjort følgende:
- Marker klassen som RestController ved at bruge anmærkningen @RestController.
- Autowire den Studenterservice klasse ved at bruge anmærkningen @Autowired .
- Definer følgende metoder:
getAllStudent(): Det returnerer en liste over alle elever.
StudentController.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(); } }
Trin 13: Opret en pakke med navnet com.javatpoint.service i mappen src/main/java.
Trin 14: Lave en Service klasse. Vi har lavet en serviceklasse med navnet Studenterservice i pakken 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); } }
Trin 15: Opret en pakke med navnet com.javatpoint.repository i mappen src/main/java.
Trin 16: Lave en Depot interface. Vi har lavet en lagergrænseflade med navnet StudentRepository i pakken com.javatpoint.repository. Det udvider Crud Repository interface.
StudentRepository.java
package com.javatpoint.repository; import org.springframework.data.repository.CrudRepository; import com.javatpoint.model.Student; public interface StudentRepository extends CrudRepository { }
Nu vil vi konfigurere datakilden URL, førerklassenavn, brugernavn, og adgangskode, i applikationsegenskaber fil.
Trin 17: Åbn applikationsegenskaber fil og konfigurer følgende egenskaber.
applikationsegenskaber
hvordan man fjerner det første tegn i excel
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
Bemærk: Glem ikke at aktivere H2-konsollen.
Efter at have oprettet alle klasser og pakker, ser projektmappen ud som følgende.
Nu kører vi applikationen.
Trin 18: Åben SpringBootH2DatabaseExampleApplication.java fil og kør den som Java-applikation.
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); } }
I næste trin vil vi bruge hvileklient Postbud for at sende STOLPE og FÅ anmodning . Hvis Postman ikke er installeret i dit system, skal du følge nedenstående trin:
- Download postbudet fra https://www.getpostman.com/downloads/ eller tilføj Google Chrome-udvidelsen i browseren https://bit.ly/1HCOCwF .
- Start postbudet og Tilmelde . Opret et brugernavn. Vi har oprettet bruger med navnet javatpoint og klikkede videre Indsend
Trin 19: Åbn Postbud og gør følgende:
- Vælg STOLPE
- Kald URL'en http://localhost:8080/student.
- Vælg Legeme
- Vælg indholdstypen JSON (applikation/json).
- Indsæt dataene. Vi har indsat følgende data i kroppen:
{ 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' }
- Klik på Sende
Når anmodningen er udført, viser den Status: 200 OK . Det betyder, at posten er blevet indsat i databasen.
Tilsvarende har vi indsat følgende data.
{ '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]' }
Lad os få adgang til H2-konsollen for at se dataene.
Trin 20: Åbn browseren og kald URL'en http://localhost:8080/h2-console. Klik på Forbinde knappen, som vist nedenfor.
Efter at have klikket på Forbinde knappen, ser vi Studerende tabel i databasen, som vist nedenfor.
Trin 21: Klik på Studerende tabel, og klik derefter på Løb knap. Tabellen viser de data, som vi har indsat i kroppen.
forekomst af
Trin 22: Åbn postbudet og send en FÅ anmodning. Det returnerer de data, som vi har indsat i databasen.
Lad os sende en FÅ anmodning med URL'en http://localhost:8080/student/{id}. Vi har kaldt URL'en http://localhost:8080/student/3. Det returnerer detaljerne for den elev, hvis id er 3.
Tilsvarende kan vi også sende en SLET anmodning. Antag, at vi ønsker at slette en elevpost, hvis id er 2.
For at slette en elevrekord skal du sende en SLET anmodning med URL'en http://localhost:8080/student/2. Vi ser, at den elev, hvis id er 2 er blevet slettet fra databasen.
Download H2 Database Eksempel Projekt