Kas yra atminties duomenų bazė
Atmintyje esanti duomenų bazė priklauso nuo sistemos atminties, o ne nuo vietos diske duomenims saugoti. Kadangi prieiga prie atminties yra greitesnė nei prieiga prie disko. Mes naudojame atmintyje esančią duomenų bazę, kai nereikia saugoti duomenų. Atmintyje esanti duomenų bazė yra įterptoji duomenų bazė. Pagal numatytuosius nustatymus atmintyje esančios duomenų bazės yra nepastovios ir visi saugomi duomenys prarandami, kai iš naujo paleidžiame programą.
Plačiai naudojamos atminties duomenų bazės yra H2, HSQLDB (HyperSQL duomenų bazė) , ir „Apache“ derbis. Jis automatiškai sukuria konfigūraciją.
kas yra struktūra duomenų struktūroje
Patvarumas ir atminties duomenų bazė
Nuolatinė duomenų bazė išsaugo duomenis fizinėje atmintyje. Duomenys bus prieinami, net jei duomenų bazės serveris bus perkeltas. Kai kurios populiarios išlikimo duomenų bazės Orakulas, MySQL , Postgres , ir tt
Tuo atveju, kai atminties duomenų bazė, duomenų saugykloje sistemos atmintis . Ji prarado duomenis, kai programa buvo uždaryta. Tai naudinga dėl MAŽAI s (Sąvokų įrodymas), neskirtas gamybos programai. Plačiai naudojama atminties duomenų bazė yra H2.
Kas yra H2 duomenų bazė
H2 yra įterptasis, atvirojo kodo, ir atmintyje duomenų bazėje. Tai reliacinė duomenų bazių valdymo sistema, parašyta Java . Tai yra kliento serveris taikymas. Paprastai jis naudojamas vieneto bandymas . Jis saugo duomenis atmintyje, o ne saugo duomenis diske.
Privalumai
- Nulinė konfigūracija
- Juo lengva naudotis.
- Jis yra lengvas ir greitas.
- Tai suteikia paprastą konfigūraciją, kad būtų galima perjungti iš tikros duomenų bazės į atmintyje esančią duomenų bazę.
- Jis palaiko standartinę SQL ir JDBC API.
- Tai suteikia žiniatinklio konsolę, kurią reikia palaikyti duomenų bazėje.
Sukonfigūruokite H2 duomenų bazę
Jei programoje norime naudoti H2 duomenų bazę, pom.xml faile turime pridėti šią priklausomybę:
com.h2database h2 runtime
Pridėję priklausomybę, turime sukonfigūruoti duomenų šaltinio URL, tvarkyklės klasės pavadinimas, naudotojo vardas, ir Slaptažodis iš H2 duomenų bazės. „Spring Boot“ yra paprastas būdas konfigūruoti šias ypatybes taikymas.ypatybės failą.
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
Viduje spring.datasource.url nuosavybė, mem yra atmintyje esančios duomenų bazės pavadinimas ir testdb yra schemos, kurią pagal numatytuosius nustatymus teikia H2, pavadinimas. Taip pat galime apibrėžti savo schemą ir duomenų bazę. Numatytasis vartotojo vardas yra įjungta o tuščias slaptažodis žymi an tuščia Slaptažodis. Jei norime pakeisti vartotojo vardą ir slaptažodį, galime nepaisyti šių reikšmių.
Išsaugokite duomenis H2 duomenų bazėje
Jei norime išsaugoti duomenis H2 duomenų bazėje, turėtume saugoti duomenis faile. Kad pasiektume tą patį, turime pakeisti duomenų šaltinio URL nuosavybę.
#persist the data spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata
Aukščiau nurodytame turte pavyzdiniai duomenys yra failo pavadinimas.
Sukurkite schemą ir užpildykite duomenis
Mes galime apibrėžti schemą sukurdami a SQL failą išteklių aplanką (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 );
Duomenis lentelėje galime užpildyti sukūrę a SQL failą išteklių aplanką (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 automatiškai paima data.sql failą ir paleiskite jį H2 duomenų bazėje paleidžiant programą.
H2 konsolė
Pagal numatytuosius nustatymus H2 duomenų bazės konsolės rodinys yra išjungtas. Prieš prisijungdami prie H2 duomenų bazės, turime ją įjungti naudodami šią ypatybę.
#enabling the H2 console spring.h2.console.enabled=true
Įjungę H2 konsolę, dabar H2 pultą galime pasiekti naršyklėje, kreipdamiesi URL http://localhost:8080/h2-console. Toliau pateiktame paveikslėlyje parodytas H2 duomenų bazės konsolės vaizdas.
Aukščiau pateiktoje ekrano kopijoje apibrėžėme savo duomenų bazę, pavadintą javatpoint .
Spring Boot H2 pavyzdys
Sukurkime „Spring Boot“ programą su H2 duomenų baze.
1 žingsnis: Atidarykite „Spring Initializr“ http://start.spring.io.
2 žingsnis: Pasirinkite Spring Boot versiją 2.3.0.M1.
2 žingsnis: Pateikite Grupė vardas. Mes pateikėme com.javatpoint.
3 veiksmas: Pateikite Artefaktas Id. Mes pateikėme spring-boot-h2-database-example.
5 veiksmas: Pridėkite priklausomybes Spring Web, Spring Data JPA, ir H2 duomenų bazė.
6 veiksmas: Spustelėkite ant Generuoti mygtuką. Kai spustelėjame mygtuką Generuoti, jis apvynioja projektą a Jar failą ir atsisiunčia jį į vietinę sistemą.
7 veiksmas: Ištrauka Jar failą ir įklijuokite jį į STS darbo sritį.
8 veiksmas: Importuoti projekto aplanką į STS.
Failas -> Importuoti -> Esami Maven projektai -> Naršyti -> Pasirinkite aplanką spring-boot-h2-database-example -> Baigti
Importuoti reikia šiek tiek laiko.
9 veiksmas: Sukurkite paketą su pavadinimu com.javatpoint.model aplanke src/main/java.
10 veiksmas: Sukurkite modelio klasę pakete com.javatpoint.model. Sukūrėme modelio klasę pavadinimu Studentas. Knygų klasėje atlikome šiuos veiksmus:
- Apibrėžkite keturis kintamuosius ID, amžius, vardas, ir
- Generuokite geterius ir seterius.
Dešiniuoju pelės mygtuku spustelėkite failą -> Šaltinis -> Generuoti Getters ir Nustatytojus. - Pažymėti klasę kaip Esybė naudojant anotaciją @Subjektas.
- Pažymėti klasę kaip Lentelė pavadinimą naudodami anotaciją @Lentelė.
- Apibrėžkite kiekvieną kintamąjį kaip Stulpelis naudojant anotaciją @Stulpelis.
Studentas.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 veiksmas: Sukurkite paketą su pavadinimu com.javatpoint.controller aplanke src/main/java.
12 veiksmas: Sukurkite valdiklio klasę pakete com.javatpoint.controller . Sukūrėme valdiklio klasę pavadinimu StudentController . StudentController klasėje atlikome šiuos veiksmus:
- Pažymėti klasę kaip RestController naudojant anotaciją @RestController.
- Automatinis laidas Studentų paslauga klasė naudojant anotaciją @Autowired .
- Apibrėžkite šiuos metodus:
getAllStudent (): Tai grąžina visų mokinių sąrašą.
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(); } }
13 veiksmas: Sukurkite paketą su pavadinimu com.javatpoint.service aplanke src/main/java.
14 veiksmas: Sukurti Aptarnavimas klasė. Sukūrėme paslaugų klasę pavadinimu Studentų paslauga pakuotėje 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 veiksmas: Sukurkite paketą su pavadinimu com.javatpoint.repository aplanke src/main/java.
16 veiksmas: Sukurti Saugykla sąsaja. Sukūrėme saugyklos sąsają pavadinimu StudentRepository pakuotėje com.javatpoint.repository. Jis pratęsia Crud saugykla sąsaja.
StudentRepository.java
package com.javatpoint.repository; import org.springframework.data.repository.CrudRepository; import com.javatpoint.model.Student; public interface StudentRepository extends CrudRepository { }
Dabar sukonfigūruosime duomenų šaltinį URL, vairuotojo klasės pavadinimas, vartotojo vardas, ir Slaptažodis, viduje taikymas.ypatybės failą.
17 veiksmas: Atidaryk taikymas.ypatybės failą ir sukonfigūruokite šias ypatybes.
taikymas.ypatybės
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
Pastaba: nepamirškite įjungti H2 konsolės.
Sukūrus visas klases ir paketus, projekto katalogas atrodo taip.
Dabar paleisime programą.
18 veiksmas: Atviras SpringBootH2DatabaseExampleApplication.java failą ir paleiskite jį kaip „Java“ programą.
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); } }
Kitame žingsnyje naudosime poilsio klientą Paštininkas už siuntimą PAST ir GAUTI prašymas . Jei Postman jūsų sistemoje neįdiegtas, atlikite toliau nurodytus veiksmus.
- Parsisiųsti paštininkas iš https://www.getpostman.com/downloads/ arba naršyklėje pridėkite „Google Chrome“ plėtinį https://bit.ly/1HCOCwF .
- Paleiskite paštininką ir Registruotis . Sukurti vartotojo vardą. Sukūrėme vartotoją tokiu vardu javatpoint ir paspaudė Pateikti
19 veiksmas: Atidaryk Paštininkas ir atlikite šiuos veiksmus:
- Pasirinkite PAST
- Iškvieskite URL http://localhost:8080/student.
- Pasirinkite kūnas
- Pasirinkite turinio tipą JSON (programa / JSON).
- Įdėkite duomenis. Į korpusą įtraukėme šiuos duomenis:
{ 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' }
- Spustelėkite ant Siųsti
Kai užklausa sėkmingai įvykdoma, rodoma Būsena: 200 Gerai . Tai reiškia, kad įrašas sėkmingai įtrauktas į duomenų bazę.
8-1 multiplekseris
Panašiai įterpėme šiuos duomenis.
{ '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]' }
Norėdami pamatyti duomenis, eikime į H2 pultą.
20 veiksmas: Atidarykite naršyklę ir iškvieskite URL http://localhost:8080/h2-console. Spustelėkite ant Prisijungti mygtuką, kaip parodyta žemiau.
Paspaudę ant Prisijungti mygtuką, matome Studentas lentelę duomenų bazėje, kaip parodyta toliau.
21 veiksmas: Spustelėkite ant Studentas lentelę, tada spustelėkite Bėk mygtuką. Lentelėje rodomi duomenys, kuriuos įdėjome į kūną.
22 veiksmas: Atidarykite paštininką ir išsiųskite a GAUTI prašymas. Jis grąžina duomenis, kuriuos įdėjome į duomenų bazę.
Atsiųsime a GAUTI užklausa su URL http://localhost:8080/student/{id}. Mes iškvietėme URL http://localhost:8080/student/3. Tai grąžina informaciją apie mokinį, kurio ID yra 3.
Panašiai galime atsiųsti ir a IŠTRINTI prašymas. Tarkime, kad norime ištrinti studento įrašą, kurio ID yra 2.
Norėdami ištrinti mokinio įrašą, atsiųskite a IŠTRINTI užklausa su URL http://localhost:8080/student/2. Matome, kad studentas, kurio ID yra 2 buvo ištrintas iš duomenų bazės.
Atsisiųskite H2 duomenų bazės pavyzdinį projektą