الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: قواعد البيانات JAVA JDBC
صفحة 1 من اصل 1 • شاطر
الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا
بسم الله الرحمن الرحيم
أهلا وسهلا بكم أخوانى الكرام .... مقال اليوم عن قاعدة بيانات مونغو دي بي (بالإنكليزية: 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
+ 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](/users/3211/33/39/82/smiles/1475747849.png)
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا
جزاكم الله خير أخى و استاذى أحمد على كل هذا المجهود
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا
كيف نتصل [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
jdk 8
chabane21000- .
- تاريخ التسجيل : 21/01/2019
المساهمات : 8
النقاط : 10
التقيم : 0
الدولة :
الجنس :
رد: الاتصال بقواعد بيانات Mongo من خلال تطبيقات الجافا
chabane21000 كتب:كيف نتصل [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]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();
}
}
}
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: قواعد البيانات JAVA JDBC
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» تصميم تطبيق جوال لمغسلة ملابس
» تصميم تطبيق جوال لشركة عقارات
» شركة مكافحة النمل الابيض بالرياض
» تصميم تطبيق جوال لنقل الاثاث
» هناجر
» تصميم تطبيق جوال لمتجر ورد
» تصميم تطبيق جوال لسلسلة مطاعم
» تصميم تطبيق جوال لتوصيل الطلبات
» مظلات سيارات متحركة