logo

قاعدة بيانات Spring Boot H2

ما هي قاعدة البيانات في الذاكرة

تعتمد قاعدة البيانات الموجودة في الذاكرة على ذاكرة النظام بدلاً من مساحة القرص لتخزين البيانات. لأن الوصول إلى الذاكرة أسرع من الوصول إلى القرص. نستخدم قاعدة البيانات الموجودة في الذاكرة عندما لا نحتاج إلى الاحتفاظ بالبيانات. قاعدة البيانات في الذاكرة هي قاعدة بيانات مضمنة. تكون قواعد البيانات الموجودة في الذاكرة متقلبة بشكل افتراضي، وتفقد جميع البيانات المخزنة عند إعادة تشغيل التطبيق.

قواعد البيانات المستخدمة على نطاق واسع في الذاكرة هي H2، هسقلدب (قاعدة بيانات هايبر إس كيو إل) , و أباتشي ديربي. يقوم بإنشاء التكوين تلقائيًا.

الثبات مقابل قاعدة البيانات في الذاكرة

تحتفظ قاعدة البيانات المستمرة بالبيانات الموجودة في الذاكرة الفعلية. ستكون البيانات متاحة حتى في حالة ارتداد خادم قاعدة البيانات. بعض قواعد بيانات الثبات الشائعة هي وحي ، ماي إس كيو إل بوستجرس, إلخ.

تحميل برنامج vlc يوتيوب

في حالة قاعدة بيانات في الذاكرة، مخزن البيانات في ذاكرة النظام . فقدت البيانات عند إغلاق البرنامج. إنه مفيد ل قليل s (إثبات المفاهيم)، وليس لتطبيق الإنتاج. قاعدة البيانات المستخدمة على نطاق واسع في الذاكرة هي H2.

ما هي قاعدة بيانات H2

H2 هو مضمن، مفتوح المصدر، و في الذاكرة قاعدة البيانات. إنه نظام إدارة قواعد بيانات علائقية مكتوب بلغة جافا . إنها خدمة الزبائن طلب. يتم استخدامه بشكل عام في وحدة التجارب . يقوم بتخزين البيانات في الذاكرة، ولا يحتفظ بالبيانات الموجودة على القرص.

مزايا

  • التكوين صفر
  • سهلة الاستخدام.
  • إنه خفيف الوزن وسريع.
  • يوفر تكوينًا بسيطًا للتبديل بين قاعدة البيانات الحقيقية وقاعدة البيانات الموجودة في الذاكرة.
  • وهو يدعم SQL القياسية وJDBC API.
  • ويوفر وحدة تحكم ويب للمحافظة عليها في قاعدة البيانات.

تكوين قاعدة بيانات H2

إذا أردنا استخدام قاعدة بيانات H2 في تطبيق ما، فنحن بحاجة إلى إضافة التبعية التالية في ملف pom.xml:

 com.h2database h2 runtime 

بعد إضافة التبعية، نحن بحاجة إلى تكوين عنوان URL لمصدر البيانات، واسم فئة السائق، واسم المستخدم، و كلمة المرور قاعدة بيانات H2 يوفر 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 ملكية، مذكرة هو اسم قاعدة البيانات في الذاكرة و com.testdb هو اسم المخطط الذي يوفره H2 افتراضيًا. يمكننا أيضًا تحديد المخطط وقاعدة البيانات الخاصة بنا. اسم المستخدم الافتراضي هو على وتشير كلمة المرور الفارغة إلى فارغ كلمة المرور. إذا أردنا تغيير اسم المستخدم وكلمة المرور، فيمكننا تجاوز هذه القيم.

استمر في البيانات في قاعدة بيانات H2

إذا أردنا الاحتفاظ بالبيانات في قاعدة بيانات H2، فيجب علينا تخزين البيانات في ملف. لتحقيق ذلك، نحتاج إلى تغيير خاصية عنوان URL لمصدر البيانات.

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

في الخاصية المذكورة أعلاه، بيانات العينة هو اسم الملف.

إنشاء المخطط وملء البيانات

يمكننا تحديد المخطط عن طريق إنشاء ملف SQL الملف في الموارد المجلد (src/الرئيسي/الموارد).

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

يمكننا ملء البيانات في الجدول عن طريق إنشاء ملف SQL الملف في الموارد المجلد (src/الرئيسي/الموارد).

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 تلقائيًا ملف data.sql الملف وتشغيله على قاعدة بيانات H2 أثناء بدء تشغيل التطبيق.

وحدة التحكم H2

بشكل افتراضي، يتم تعطيل طريقة عرض وحدة التحكم لقاعدة بيانات H2. قبل الوصول إلى قاعدة بيانات H2، يجب علينا تمكينها باستخدام الخاصية التالية.

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

بمجرد تمكين وحدة التحكم H2، يمكننا الآن الوصول إلى وحدة التحكم H2 في المتصفح عن طريق استدعاء عنوان URL http://localhost:8080/h2-console. يوضح الشكل التالي طريقة عرض وحدة التحكم لقاعدة بيانات H2.

قاعدة بيانات Spring Boot H2

في لقطة الشاشة أعلاه، قمنا بتحديد قاعدة البيانات الخاصة بنا والتي تسمى javatpoint .

مثال على التمهيد الربيعي H2

لنقم بإعداد تطبيق Spring Boot باستخدام قاعدة بيانات H2.

الخطوة 1: افتح SpringInitiializr http://start.spring.io .

الخطوة 2: حدد إصدار Spring Boot 2.3.0.M1.

الخطوة 2: توفير مجموعة اسم. قدمنا com.javatpoint.

الخطوه 3: توفير الأداة بطاقة تعريف. قدمنا مثال على قاعدة بيانات Spring-Boot-H2.

الخطوة 5: أضف التبعيات ربيع ويب، بيانات الربيع JPA، و قاعدة بيانات H2.

الخطوة 6: اضغط على يولد زر. عندما نضغط على زر إنشاء، فإنه يغلف المشروع في ملف إناء الملف وتنزيله على النظام المحلي.

قاعدة بيانات Spring Boot H2

الخطوة 7: يستخرج ملف Jar والصقه في مساحة عمل STS.

الخطوة 8: يستورد مجلد المشروع إلى STS.

ملف -> استيراد -> مشاريع Maven الحالية -> تصفح -> حدد المجلد Spring-boot-h2-database-example -> إنهاء

يستغرق الاستيراد بعض الوقت.

الخطوة 9: قم بإنشاء حزمة بالاسم com.javatpoint.model في المجلد src/main/java.

الخطوة 10: قم بإنشاء فئة نموذجية في الحزمة com.javatpoint.model. لقد أنشأنا فئة نموذجية بالاسم طالب. في صف الكتب قمنا بما يلي:

  • تعريف أربعة متغيرات الهوية، العمر، الاسم، و
  • توليد Getters وSetters.
    انقر بزر الماوس الأيمن على الملف -> المصدر -> إنشاء الحروف والإعدادات.
  • وضع علامة على الفصل ك كيان باستخدام التعليق التوضيحي @كيان.
  • وضع علامة على الفصل ك طاولة الاسم باستخدام التعليق التوضيحي @طاولة.
  • تعريف كل متغير كما عمود باستخدام التعليق التوضيحي @عمود.

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

الخطوة 11: قم بإنشاء حزمة بالاسم com.javatpoint.controller في المجلد src/main/java.

الخطوة 12: قم بإنشاء فئة تحكم في الحزمة com.javatpoint.controller . لقد أنشأنا فئة تحكم بالاسم StudentController . في فئة StudentController، قمنا بما يلي:

  • وضع علامة على الفصل ك RestController باستخدام التعليق التوضيحي @RestController.
  • توصيل تلقائي خدمة الطلاب الصف باستخدام التعليق التوضيحي @Autowired .
  • تحديد الطرق التالية:
      الحصول على AllStudent ():تقوم بإرجاع قائمة بجميع الطلاب.
  • الحصول على الطالب ():تقوم بإرجاع تفاصيل الطالب التي حددناها في متغير المسار. لقد مررنا المعرف كوسيطة باستخدام التعليق التوضيحي @PathVariable. يشير التعليق التوضيحي إلى أنه يجب ربط معلمة الأسلوب بمتغير قالب URI.حذف الطالب ():يقوم بحذف طالب معين قمنا بتحديده في متغير المسار.حفظ الطالب ():يحفظ تفاصيل الطالب. يشير التعليق التوضيحيRequestBody إلى أن معلمة الطريقة يجب أن تكون مرتبطة بنص طلب الويب.

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: قم بإنشاء حزمة بالاسم com.javatpoint.service في المجلد src/main/java.

الخطوة 14: إنشاء خدمة فصل. لقد أنشأنا فئة خدمة بالاسم خدمة الطلاب في حزمة 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: قم بإنشاء حزمة بالاسم com.javatpoint.repository في المجلد src/main/java.

الخطوة 16: إنشاء مخزن واجهه المستخدم. لقد أنشأنا واجهة مستودع بالاسم مستودع الطلاب في حزمة com.javatpoint.repository. ويمتد مستودع الخام واجهه المستخدم.

StudentRepository.java

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

الآن سوف نقوم بتكوين مصدر البيانات عنوان URL، اسم فئة السائق، اسم المستخدم، و كلمة المرور، في ال application.properties ملف.

الخطوة 17: افتح ال application.properties ملف وتكوين الخصائص التالية.

application.properties

 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 

ملاحظة: لا تنس تمكين وحدة التحكم H2.

بعد إنشاء جميع الفئات والحزم، يبدو دليل المشروع كما يلي.

قاعدة بيانات Spring Boot H2

الآن سوف نقوم بتشغيل التطبيق.

الخطوة 18: يفتح SpringBootH2DatabaseExampleApplication.java قم بتشغيل الملف وتشغيله كتطبيق Java.

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

في الخطوة التالية، سوف نستخدم بقية العميل ساعي البريد لإرسال بريد و يحصل طلب . إذا لم يتم تثبيت Postman في نظامك، فاتبع الخطوات التالية:

  • تحميل ساعي البريد من https://www.getpostman.com/downloads/ أو قم بإضافة ملحق Google Chrome في المتصفح https://bit.ly/1HCOCwF .
  • إطلاق ساعي البريد و اشتراك . انشي اسم مستخدم. لقد أنشأنا مستخدمًا بالاسم javatpoint وتم النقر عليه يُقدِّم

الخطوة 19: افتح ال ساعي البريد وقم بما يلي:

  • حدد بريد
  • استدعاء عنوان URL http://localhost:8080/student.
  • حدد جسم
  • حدد نوع المحتوى JSON (التطبيق/json).
  • أدخل البيانات. لقد أدخلنا البيانات التالية في النص:
 { '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]' } 

دعنا ندخل إلى وحدة التحكم H2 لرؤية البيانات.

الخطوة 20: افتح المتصفح واستدع عنوان URL http://localhost:8080/h2-console. اضغط على يتصل الزر، كما هو موضح أدناه.

قاعدة بيانات Spring Boot H2

بعد النقر على يتصل زر، ونحن نرى طالب الجدول في قاعدة البيانات كما هو موضح أدناه.

قاعدة بيانات Spring Boot H2

الخطوة 21: اضغط على طالب الجدول ثم اضغط على يجري زر. يوضح الجدول البيانات التي أدخلناها في النص.

قاعدة بيانات Spring Boot H2

الخطوة 22: افتح ساعي البريد وأرسل أ يحصل طلب. يقوم بإرجاع البيانات التي قمنا بإدراجها في قاعدة البيانات.

قاعدة بيانات Spring Boot H2

دعونا نرسل أ يحصل طلب بعنوان URL http://localhost:8080/student/{id}. لقد قمنا باستدعاء عنوان URL http://localhost:8080/student/3. يقوم بإرجاع تفاصيل الطالب الذي هويته 3.

قاعدة بيانات Spring Boot H2

وبالمثل، يمكننا أيضًا إرسال أ يمسح طلب. لنفترض أننا نريد حذف سجل طالب معرفه هو 2.

لحذف سجل الطالب، أرسل أ يمسح الطلب باستخدام عنوان URL http://localhost:8080/student/2. نرى أن الطالب الذي هويته 2 تم حذفه من قاعدة البيانات.

قاعدة بيانات Spring Boot H2
قم بتنزيل نموذج مشروع قاعدة بيانات H2