logo

Спринг Боот Х2 база података

Шта је база података у меморији

База података у меморији се ослања на системску меморију за разлику од простора на диску за складиштење података. Зато што је приступ меморији бржи од приступа диску. Користимо базу података у меморији када не морамо да задржимо податке. База података у меморији је уграђена база података. Меморијске базе података су непроменљиве, подразумевано, и сви сачувани подаци губе када поново покренемо апликацију.

Широко коришћене базе података у меморији су Х2, ХСКЛДБ (ХиперСКЛ база података) , и Апацхе Дерби. Аутоматски креира конфигурацију.

Постојаност наспрам базе података у меморији

Перзистентна база података чува податке у физичкој меморији. Подаци ће бити доступни чак и ако је сервер базе података одбијен. Неке популарне базе података о постојаности су Орацле , МиСКЛ , Постгрес , итд.

У случају база података у меморији, складиште података у системска меморија . Изгубио је податке када је програм затворен. То је корисно за ЛИТТЛЕ с (Прооф оф Цонцептс), није за производну примену. Широко коришћена база података у меморији је Х2.

Шта је Х2 база података

Х2 је уграђени, отвореног кода, и у меморији база података. То је систем за управљање релационим базама података написан Јава . То је клијент/сервер апликација. Обично се користи у јединично тестирање . Он чува податке у меморији, а не задржава податке на диску.

Предности

  • Нулта конфигурација
  • Лако се користи.
  • Лаган је и брз.
  • Пружа једноставну конфигурацију за пребацивање између стварне базе података и базе података у меморији.
  • Подржава стандардни СКЛ и ЈДБЦ АПИ.
  • Обезбеђује веб конзолу за одржавање у бази података.

Конфигуришите Х2 базу података

Ако желимо да користимо Х2 базу података у апликацији, потребно је да додамо следећу зависност у датотеку пом.кмл:

 com.h2database h2 runtime 

Након додавања зависности, морамо да конфигуришемо УРЛ извора података, име класе драјвера, корисничко име, и Лозинка базе података Х2. Спринг Боот пружа једноставан начин за конфигурисање ових својстава апликација.особине фајл.

претварање стринга у инт
 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 

У спринг.датасоурце.урл имовина, мем је назив базе података у меморији и тестдб је назив шеме коју Х2 обезбеђује, подразумевано. Такође можемо дефинисати сопствену шему и базу података. Подразумевано корисничко име је на а празна лозинка означава ан празан Лозинка. Ако желимо да променимо корисничко име и лозинку, можемо да заменимо ове вредности.

Задржите податке у Х2 бази података

Ако желимо да задржимо податке у бази података Х2, требало би да сачувамо податке у датотеци. Да бисмо постигли исто, морамо да променимо својство УРЛ-а извора података.

 #persist the data spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata 

У горе наведеној имовини, тхе примјера података је име датотеке.

Креирајте шему и попуните податке

Можемо дефинисати шему креирањем а СКЛ фајл у ресурс фолдер (срц/маин/ресоурце).

сцхема.скл

 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 ); 

Можемо да попунимо податке у табели креирањем а СКЛ фајл у ресурс фолдер (срц/маин/ресоурце).

дата.скл

 INSERT INTO CITY VALUES (11, 'Delhi', 110001); INSERT INTO CITY VALUES (12, 'Kanpur', 208001); INSERT INTO CITY VALUES (13, 'Lucknow', 226001); 

Спринг Боот аутоматски преузима дата.скл датотеку и покрените је у бази података Х2 током покретања апликације.

Х2 конзола

Подразумевано, приказ конзоле Х2 базе података је онемогућен. Пре него што приступимо бази података Х2, морамо је омогућити коришћењем следећег својства.

 #enabling the H2 console spring.h2.console.enabled=true 

Када смо омогућили Х2 конзолу, сада можемо да приступимо Х2 конзоли у претраживачу позивањем УРЛ адресе хттп://лоцалхост:8080/х2-цонсоле. Следећа слика приказује приказ конзоле Х2 базе података.

Спринг Боот Х2 база података

На горњем снимку екрана дефинисали смо сопствену базу података под називом Јаватпоинт .

Спринг Боот Х2 Пример

Хајде да поставимо Спринг Боот апликацију са Х2 базом података.

Корак 1: Отворите Спринг Инитиализр хттп://старт.спринг.ио.

Корак 2: Изаберите верзију Спринг Боот-а 2.3.0.М1.

Корак 2: Обезбедите Група име. Ми смо обезбедили цом.јаватпоинт.

Корак 3: Обезбедите Предмет за употребу Ид. Ми смо обезбедили спринг-боот-х2-датабасе-екампле.

5. корак: Додајте зависности Спринг Веб, Спринг Дата ЈПА, и Х2 база података.

Корак 6: Кликните на Генериши дугме. Када кликнемо на дугме Генерирај, оно умотава пројекат у а Јар датотеку и преузима је на локални систем.

Спринг Боот Х2 база података

7. корак: Екстракт Јар датотеку и налепите је у СТС радни простор.

Корак 8: Увоз фасциклу пројекта у СТС.

Датотека -> Увоз -> Постојећи Мавен пројекти -> Прегледај -> Изаберите фасциклу спринг-боот-х2-датабасе-екампле -> Заврши

Потребно је неко време за увоз.

9. корак: Направите пакет са именом цом.јаватпоинт.модел у фасцикли срц/маин/јава.

10. корак: Креирајте класу модела у пакету цом.јаватпоинт.модел. Направили смо класу модела са именом Ученик. На часу Књиге смо урадили следеће:

  • Дефинишите четири променљиве ИД, старост, име, и
  • Генерисање Геттера и Сеттера.
    Кликните десним тастером миша на датотеку -> Извор -> Генериши Геттерс и Сеттерс.
  • Означите разред као Ентитет коришћењем напомене @Ентити.
  • Означите разред као Сто назив користећи напомену @Сто.
  • Дефинишите сваку променљиву као Колона коришћењем напомене @Цолумн.

Студент.јава

 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: Направите пакет са именом цом.јаватпоинт.цонтроллер у фасцикли срц/маин/јава.

Корак 12: Креирајте класу Цонтроллер у пакету цом.јаватпоинт.цонтроллер . Направили смо класу контролера са именом СтудентЦонтроллер . У класи СтудентЦонтроллер урадили смо следеће:

  • Означите разред као РестЦонтроллер коришћењем напомене @РестЦонтроллер.
  • Аутовире тхе СтудентСервице класе коришћењем напомене @Аутовиред .
  • Дефинишите следеће методе:
      гетАллСтудент():Враћа листу свих ученика.
  • гетСтудент():Враћа учеников детаљ који смо навели у променљивој путање. Проследили смо ид као аргумент користећи напомену @ПатхВариабле. Напомена указује да параметар методе треба да буде везан за променљиву УРИ шаблона.делетеСтудент():Брише одређеног ученика којег смо навели у променљивој путање.савеСтудент():То штеди детаље ученика. Напомена @РекуестБоди указује да параметар методе треба да буде везан за тело веб захтева.

СтудентЦонтроллер.јава

 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: Направите пакет са именом цом.јаватпоинт.сервице у фасцикли срц/маин/јава.

Корак 14: Створити Услуга класа. Направили смо сервисну класу са именом СтудентСервице у пакету цом.јаватпоинт.сервице.

јава објекат

СтудентСервице.јава

 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: Направите пакет са именом цом.јаватпоинт.репоситори у фасцикли срц/маин/јава.

Корак 16: Створити Репозиторијум интерфејс. Направили смо интерфејс спремишта са именом СтудентРепоситори у пакету цом.јаватпоинт.репоситори. Проширује се Цруд Репоситори интерфејс.

СтудентРепоситори.јава

 package com.javatpoint.repository; import org.springframework.data.repository.CrudRepository; import com.javatpoint.model.Student; public interface StudentRepository extends CrudRepository { } 

Сада ћемо конфигурисати извор података УРЛ, назив класе драјвера, корисничко име, и Лозинка, у апликација.особине фајл.

Корак 17: Отвори апликација.особине датотеку и конфигуришите следећа својства.

апликација.особине

 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 

Напомена: Не заборавите да омогућите Х2 конзолу.

Након креирања свих класа и пакета, директоријум пројекта изгледа овако.

Спринг Боот Х2 база података

Сада ћемо покренути апликацију.

Корак 18: Отвори СпрингБоотХ2ДатабасеЕкамплеАпплицатион.јава датотеку и покрените је као Јава апликацију.

СпрингБоотХ2ДатабасеЕкамплеАпплицатион.јава

 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); } } 

У следећем кораку користићемо рест цлиент Поштар за слање ПОШТА и ДОБИТИ захтев . Ако Постман није инсталиран у вашем систему, следите доле наведене кораке:

Корак 19: Отвори Поштар и урадите следеће:

  • Изаберите ПОШТА
  • Позовите УРЛ хттп://лоцалхост:8080/студент.
  • Изаберите Тело
  • Изаберите он Цонтент-Типе ЈСОН (апликација/јсон).
  • Убаците податке. У тело смо убацили следеће податке:
 { 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' } 
  • Кликните на Пошаљи

Када се захтев успешно изврши, приказује се Статус:200 ОК . То значи да је запис успешно убачен у базу података.

Слично томе, унели смо следеће податке.

 { '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]' } 

Хајде да приступимо Х2 конзоли да видимо податке.

Корак 20: Отворите претраживач и позовите УРЛ хттп://лоцалхост:8080/х2-цонсоле. Кликните на Повежите се дугме, као што је приказано испод.

Спринг Боот Х2 база података

Након што кликнете на Повежите се дугме, видимо Ученик табелу у бази података, као што је приказано у наставку.

Спринг Боот Х2 база података

Корак 21: Кликните на Ученик табелу, а затим кликните на Трцати дугме. Табела приказује податке које смо убацили у тело.

Спринг Боот Х2 база података

Корак 22: Отворите Поштара и пошаљите а ДОБИТИ захтев. Враћа податке које смо убацили у базу података.

како покренути скрипту у Линук-у
Спринг Боот Х2 база података

Хајде да пошаљемо а ДОБИТИ захтев са УРЛ-ом хттп://лоцалхост:8080/студент/{ид}. Позвали смо УРЛ хттп://лоцалхост:8080/студент/3. Враћа детаље о ученику чији је ИД 3.

Спринг Боот Х2 база података

Слично томе, можемо послати и а ИЗБРИШИ захтев. Претпоставимо да желимо да избришемо евиденцију ученика чији је ИД 2.

Да бисте избрисали евиденцију ученика, пошаљите а ИЗБРИШИ захтев са УРЛ-ом хттп://лоцалхост:8080/студент/2. Видимо да је ученик чији је ИД 2 је избрисан из базе података.

Спринг Боот Х2 база података
Преузмите пример пројекта Х2 базе података