الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا

مُساهمة من طرف أحمد مناع في الجمعة يناير 31, 2014 7:14 pm

بسم الله الرحمن الرحيم 

أهلا وسهلا بكم أخوانى الكرام .... مقال اليوم عن قاعدة بيانات مونغو دي بي (بالإنكليزية: MongoDB) وهي نظام قاعدة بيانات مفتوحة المصدر طورت  ومدعومة من قبل الشركة الأمريكية 10gen  وهي جزء من عائلة أنظمة قواعد بيانات NoSQL. بدلاً من تخزين البيانات في جداول كما معروف في قاعدة البيانات المترابطة، تقوم مونغو دي بي بتنظيم البيانات كمستندات شبيه JSON بمخططات ديناميكية فتجعل دمج البيانات في أنواع محددة من التطبيقات أسهل وأسرع.

بدات شركة 10gen بتطوير مونغو دي بي في أكتوبر2007، وهي تستخدم الأن من قبل MTV Networks كريجزليست,Foursquare and UIDAI Aadhaar. وهي تعتبر اشهر نظام إدارة قواعد بيانات NoSQL

ويمكنك تحميل نسختك من نظام إدارة قاعدة بيانات Mongo من على الرابط التالى
و يمكنك الاطلاع ايضا على تكيفية تنصيب النظام على جهازك من خلال الرابط التالى

الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا

1_ تحميل سائق الاتصال Mongo Java Driver

انقر هنا لتحميل أحدث إصدار من سائق الاتصال Mongo Java Driver (الإصدار 2.11.1 حتى كتابة هذه السطور). و هو عبارة عن ملف JAR بأشم mongo-java-driver-VERSION.jar  (حجمة حوالي 400KB).....قم بنسخ ملف JAR  إلى مسار التطبيق CLASSPATH الخاص بك.....

2_طرق الاتصال بقاعدة البيانات

هناك طريقتين للاتصال بقواعد بيانات وهما على النحو التالى :

الطريقة الاولى : الاتصال MongoDB باستخدام MongoClient

حيث يمكنك استخدام الفئة MongoClient لإجراء اتصال مع خادم MongoDB وإجراء العمليات المتعلقة قاعدة البيانات....وذلك من خلال انشاء مثيل جديد من الفئة على النحو التالى :


  • إذا كان خادم قاعدة البيانات MongoDB server يعمل على المضيف المحلى localhost


الرمز:
MongoClient mongoClient = new MongoClient("localhost");



  • أذا كان خادم قاعدة البيانات MongoDB server على شبكة الانترنت


الرمز:
MongoClient mongoClient = new MongoClient("db1.server.com");



  • الاتصال بخادم قاعدة البيانات MongoDB server فى الحالات السابقة على منفذ معين


الرمز:
MongoClient mongoClient = new MongoClient("localhost", 27017);


أو

الرمز:
MongoClient mongoClient = new MongoClient("db1.server.com", 27018);


كما يمكنك الاتصال بمجموعة خوادم على النحو التالى :

الرمز:
List<ServerAddress> seeds = new ArrayList<ServerAddress>();
seeds.add(new ServerAddress("db1.server.com", 27017));
seeds.add(new ServerAddress("db2.server.com", 27018));
seeds.add(new ServerAddress("db3.server.com", 27019));
 
MongoClient mongoClient = new MongoClient(seeds);


بعد تأسيس الاتصال، يمكننا الحصول على قاعدة بيانات وإجراء المصادقة (إذا كان الملقم قيد التشغيل في الوضع الآمن)، على سبيل المثال:

الرمز:
MongoClient mongoClient = new MongoClient();
DB db = mongoClient.getDB("test");
 
char[] password = new char[] {'s', 'e', 'c', 'r', 'e', 't'};
boolean authenticated = db.authenticate("root", password);
 
if (authenticated) {
    System.out.println("Successfully logged in to MongoDB!");
} else {
    System.out.println("Invalid username/password");
}


واليكم مثال كامل للتوضيح

الرمز:
import java.net.UnknownHostException;
import java.util.List;
import java.util.Set;
 
import com.mongodb.DB;
import com.mongodb.MongoClient;
 
public class JavaMongoDBConnection {
 
   public static void main(String[] args) {
        try {
            
           MongoClient mongoClient = new MongoClient("localhost");
            
           List<String> databases = mongoClient.getDatabaseNames();
            
           for (String dbName : databases) {
                System.out.println("- Database: " + dbName);
                
               DB db = mongoClient.getDB(dbName);
                
               Set<String> collections = db.getCollectionNames();
                for (String colName : collections) {
                    System.out.println("\t + Collection: " + colName);
                }
            }
            
           mongoClient.close();
            
       } catch (UnknownHostException ex) {
            ex.printStackTrace();
        }
        
   }
}


فى الكود أعلاه يقوم بالاتصال بخادم قاعدة البيانات MongoDB الذى يعمل على المضيف المحلي في المنفذ الافتراضي، ثم يسرد كافة أسماء قواعد البيانات المتوفرة على الملقم. لكل قاعدة بيانات، يتم سرد كافة أسماء مجموعة (مجموعة ما يعادل جدول في قاعدة بيانات علائقية)، وأخيرا إغلاق الاتصال. سيكون هذا البرنامج إنتاج الإخراج التالي:


- Database: local
      + Collection: startup_log
- Database: mydb
      + Collection: system.indexes
      + Collection: things
- Database: test
      + Collection: system.indexes
      + Collection: test



الطريقة الثانية : الاتصال بقواعد بيانات MongoDB باستخدام سلسلة الاتصال URI

فمن الممكن أيضا استخدام String لبناء نص للاتصال بلقم MongoDB، على سبيل المثال:

الرمز:
String dbURI = "mongodb://localhost";
MongoClient mongoClient = new MongoClient(new MongoClientURI(dbURI));


حيث يتم بناء نص الاتصال url على النحو التالى :

الرمز:
mongodb://[username:password@]host1[:port1][,host2[:port2]

و اليكم بعض الامثلة :



  • الاتصال بالخادم MongoDB يعمل على المضيف المحلي في المنفذ الافتراضي:


الرمز:
mongodb://localhost



  • لاتصال بقاعدة البيانات MongoDB على خادم اسمه db1.server.com يعمل على المنفذ رقم 27027 مع أسم المستخدم وكلمة المرور :


الرمز:
mongodb://root:secret@db1.server.com:27027

حيث ان root أسم المستخدم و secret كلمة المرور


  • الاتصال بمجموعة من ثلاثة خوادم :


الرمز:
mongodb :/ / db1.server.com، db2.server.com، db3.server.com



وفى النهاية شكرا لكم  Very Happy

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 809
النقاط : 1478
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا

مُساهمة من طرف زهراء في السبت فبراير 01, 2014 5:47 pm


جزاكم الله خير أخى و استاذى أحمد على كل هذا المجهود

زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى