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

اذهب الى الأسفل

الاتصال بقواعد بيانات  Mongo من خلال تطبيقات الجافا  Empty الاتصال بقواعد بيانات 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
المساهمات : 994
النقاط : 201783
التقيم : 119
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

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

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

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


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

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

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

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

مُساهمة من طرف chabane21000 في الثلاثاء يناير 29, 2019 10:12 am

كيف نتصل [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
jdk 8
chabane21000
chabane21000
.
.

تاريخ التسجيل : 21/01/2019
المساهمات : 6
النقاط : 8
التقيم : 0
الدولة : الجزائر
الجنس : ذكر

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

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

مُساهمة من طرف أحمد مناع في الأربعاء يناير 30, 2019 8:24 am

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كتب:
كيف نتصل [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
jdk 8

اهلا بيك اخى 

اليك مثال أما الشرح سافتح به مقالة عما قريب

الكود:


import java.sql.*;
public class DBFDriverTest {
   
   
public static void main(String[] args) {
try {
// تحميل درايفر الاتصال بقاعدة البيانات
Class.forName("com.relationaljunction.jdbc.dbf.DBFDriver2");

// إنشاء اتصال.
Connection conn = DriverManager.getConnection("jdbc:relationaljunction:dbf:" + args[0]);
// إنشاء كائن Statement لتنفيذة جملة الاستعلام
Statement stmt = conn.createStatement();
// تنفيذ جملة الاستعلام
ResultSet rs = stmt.executeQuery("SELECT * FROM "test.dbf"");
// قراءة بيانانات القاعدة
for (int j = 1; j <= rs.getMetaData().getColumnCount(); j++) {
System.out.print(rs.getMetaData().getColumnName(j) + "t");
}
System.out.println();
while (rs.next()) {
for (int j = 1; j <= rs.getMetaData().getColumnCount(); j++) {
System.out.print(rs.getObject(j) + "t");
}
System.out.println();
}
// close the objects
rs.close();
stmt.close();
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}

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

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

http://egy-tech.forumegypt.net

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

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


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