يوم جيد للجميع!
بدأ الدفق الجديد تمامًا
"Developer on the Spring Framework" ، "فجأة" ، وتبين أن هذه الدورة تحظى بشعبية كبيرة بين كل من الطلاب الجدد وأولئك الذين لم يتعلموا منا بالفعل في Java والمشاريع "العادية". لذا ، إذا كان الأمر مثيرًا للاهتمام ، فانتقل إلينا للحصول على
دروس مفتوحة ، وبطبيعة الحال ، شارك المواد الشيقة حول الموضوع.
ترجمة البيانات الربيعية MongoDB
نشره أناند كوماردعنا نذهب!
في عالم اليوم ، من المهم جدًا إنشاء التطبيق وتشغيله في أقرب وقت ممكن. أيضا ، يجب أن يكون التطبيق سهل التطوير وسهل الصيانة.
Spring هو مجرد إطار عمل يوفر سهولة التكامل مع العديد من الأطر المختلفة الأخرى ، مما يبسط تطوير التطبيقات باستخدام Spring. أحد هذه التكامل هو تكامل الربيع مع MongoDB.
1. مقدمة في هذا الدرس ، سنناقش مزيجًا من أشهر إطار عمل جافا الربيعي وأشهر نظام إدارة قاعدة بيانات NoSQL (DBMS) MongoDB. MongoDB هو نظام إدارة قواعد البيانات NoSQL DBMS الموجه للمستندات الذي يقوم بتخزين البيانات بتنسيق يشبه JSON.
يتم توفير التكامل بين Spring Data و MongoDB بواسطة Spring لتسهيل تفاعل كل منهما وراحة المطورين ، مما يلغي الحاجة إلى كتابة العديد من الاستفسارات للإدراج والتحديث والحذف.
فيما يلي بعض الميزات التي يوفرها مشروع Spring Data MongoDB:
- تسمح لك Spring Data باستخدام كل من فئة التكوين وتكوين XML.
- يتم استخدام التسلسل الهرمي لاستثناءات الربيع للوصول إلى الاستثناء.
- تخطيط متكامل بين Java POJOs ووثيقة MongoDB.
- فئة MongoTemplate ، التي تبسط استخدام عمليات MongoDB الشائعة.
- بالإضافة إلى MongoTemplate ، يمكنك استخدام فئتي MongoReader و MongoWriter للعرض على مستوى منخفض.
أفضل طريقة لفهم أي تقنية هي استخدامها عمليًا ، وهذا بالضبط ما سنفعله الآن.
لنقم بإنشاء برنامج بسيط لمعرفة المزيد حول Spring Data MongoDB.
2. التقنيات والأدواتدعونا نلقي نظرة على التقنيات والأدوات التي سنستخدمها لإنشاء البرنامج.
- إطلاق Eclispe Oxygen.2 (4.7.2)
- جافا - الإصدار 9.0.4
- جرادل - 4.6
- خادم MongoDB - 3.6
- MongoCompass - 3.6
- SpringDataMongoDB - 2.0.5-RELEASE
3. هيكل المشروعسيبدو هيكل مشروعنا كما هو موضح أدناه.
هيكل المشروع لبيانات الربيع MongoDBسيكون لمشروع gradle الهيكل الموضح أعلاه. في حالة pom.xml ، ستكون بنية المشروع مختلفة قليلاً.
4. البرنامجكجزء من هذا البرنامج ، سنحاول إكمال المهام أدناه.
- حفظ كائن في MongoDB
- تحديث كائن في MongoDB
- إزالة كائن من MongoDB
- استرجاع جميع الكائنات من MongoDB
دعونا الآن نحلل جميع مكونات البرنامج. بادئ ذي بدء ، سنبدأ بالتبعيات وملفات الجرة اللازمة للبرنامج.
4.1 تدرجنستخدم Gradle لبناء جزء من البرنامج.
build.gradle
ملف
build.gradle
كما هو موضح أدناه.
apply plugin: 'java' repositories { mavenCentral() } dependencies { compile group: 'org.springframework.data', name: 'spring-data-mongodb', version: '2.0.5.RELEASE' implementation 'com.google.guava:guava:23.0' testImplementation 'junit:junit:4.12' }
في ملف
build.gradle
،
apply plugin: 'java'
السطر
apply plugin: 'java'
يخبر المكوّن الإضافي المطلوب تثبيته. في حالتنا ، هذا هو البرنامج المساعد جافا.
تشير علامة
repositories{}
إلى المستودع الذي يجب سحب التبعيات منه. لقد اخترنا
mavenCentral
لسحب ملفات الجرة التابعة. يمكننا أيضًا استخدام jcenter لسحب ملفات الجرة التابعة المقابلة.
يتم استخدام علامة
dependencies {}
لتوفير البيانات اللازمة حول ملفات jar التي يجب سحبها للمشروع.
4.2 تكوين MongoDBلاستخدام تكوين MongoDB ، نحتاج إلى تطبيق فئة
AbstractMongoConfiguration
. سوف تبدو فئة
MongoConfig.java
كما هو موضح أدناه. هنا نستخدم التعليقات التوضيحية بدلاً من XML. ولكن يمكن أيضًا استخدام XML لتكوين التكوين.
تنفيذ فئة MongoConfig.java
package com.tutorial.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractMongoConfiguration; import com.mongodb.MongoClient; @Configuration public class MongoConfig extends AbstractMongoConfiguration { @Override public String getDatabaseName() { return "local"; } @Override @Bean public MongoClient mongoClient() { return new MongoClient("127.0.0.1"); } }
يستخدم
@Configuration
لتعريف فئة
MongoConfig.java
أنها فئة التكوين.
@Bean
يحدد
MongoClient
.
4.3 فئة النموذجالآن فكر في فئة النموذج. نستخدم
student.java
كفئة نموذجية تحتوي على سمات الطالب ، مثل الاسم والعمر.
Student.java
استخدام
Student.java
نموذج
Student.java
لتعيين POJOs إلى مجموعة MongoDB.
فئة نموذج الطالب
package com.tutorial.model; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "students") public class Student { public Student(String studentName, int studentAge) { this.studentName = studentName; this.studentAge = studentAge; } @Id private String id; String studentName; int studentAge; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public int getStudentAge() { return studentAge; } public void setStudentAge(int studentAge) { this.studentAge = studentAge; } @Override public String toString() { return String.format( "Student[id=%s, studentName='%s', studentAge="+studentAge+"]", id, studentName); } }
@Document
يحدد المستند. تحدد خاصية المجموعة المجموعة التي سيتم استخدامها لمطابقة المجموعة. يجب أن تكون جميع السمات المشار إليها كجزء من المجموعة يمكن الوصول إليها في فئة POJO. يعرّف
@Id
معرّف المجموعة.
4.4 عمليات CRUDلتنفيذ عمليات CRUD (وهي اختصار للإنشاء والقراءة والتحديث والحذف) ، مثل حفظ البيانات وتحديثها وحذفها واستردادها من
MongoOperations
سنستخدم
MongoOperations
.
الآن دعونا نلقي نظرة على فئة
MongoDBPOperations.java
. تحتوي هذه الفئة على تنفيذ جميع أساليب عمليات CRUD.
فئة MongoDBPOperations التي سيتم استخدامها لتنفيذ عمليات CRUD
package com.tutorial; import java.util.List; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import com.tutorial.model.Student; public class MongoDBPOperations { public void saveStudent(MongoOperations mongoOperation, Student student) { mongoOperation.save(student); System.out.println("Student saved successfully");
أهم فئة في برنامج Java هي الفئة التي تحتوي على الطريقة
main
.
4.5 فئة التطبيقالفئة الرئيسية التي تحتوي على الطريقة الرئيسية هي فئة
Application.java
. سنستخدم هذه الفئة لاستدعاء أساليب من فئة
MongoDBPOperations
.
فئة التطبيق لاستدعاء أساليب فئة MongoDBPOperations
package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) {
دعونا ننظر خطوة بخطوة إلى العمليات التي يتم تنفيذها في فئة
Application.java
:
- نقوم بإنشاء
ApplicationContext
. هذا بسبب الحاجة إلى تنزيل التكوين. - بالإضافة إلى ذلك ، تم
MongoOperations
كائن MongoOperations
لتحميل مكون MongoTemplate
. - يوفر كائن
MongoDBOperations
الوصول إلى طرق تنفيذ عمليات MongoOperation
المختلفة. - بالإضافة إلى ذلك ، تم إنشاء كائن الطالب باسم جون وعمره 15 عامًا.
- نسمي طريقة
saveMethod
لفئة saveMethod
، saveMethod
المعلمات الضرورية لحفظ الكائن في قاعدة البيانات. - بنفس الطريقة ، نطلق على أساليب
MongoDBOperations
المختلفة واحدة تلو الأخرى.
4.6 بدء البرنامجأخيرًا ، فلنقم الآن بتشغيل البرنامج كتطبيق Java. انقر بزر الماوس الأيمن على Application.java -> Run as -> Java Application.
ستظهر النتيجة التالية في وحدة التحكم.
إخراج وحدة التحكم بعد بدء البرنامجالآن دعنا نعلق الأمر لحذف الكائن. سيقوم MongoDB بتخزين البيانات بنجاح.
أيضًا ، دعنا نعلق على السطر لحذف الكائن ، كما هو موضح أدناه.
تطبيق فئة بعد التعليق طرق الإزالة
package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) {
بعد إجراء تغييرات على البرنامج ، دعنا نعيد تشغيله. يظهر ما يلي في وحدة التحكم.
وحدة التحكم عند التعليق على عملية الحذفنتيجة للتعليق على أمر الحذف ، سيقوم MongoDB بتخزين البيانات وبالتالي سيبدو كما هو موضح أدناه.
إخراج MongoDB بعد أمر الحفظ والتحديث5. قم بتنزيل مشروع Eclipseيمكنك تنزيل شفرة المصدر بأكملها لهذا المثال
هنا.النهاية
كما هو الحال دائمًا ، نحن ننتظر الأسئلة والتعليقات هنا أو نذهب إلى
يوري للحصول
على درس مفتوح حيث لا يمكنك الاستماع فحسب ، بل أيضًا الاستفسار.