العمل مع قواعد البيانات في Java: PostgreSQL و MongoDB للمبتدئين
\n\nفي التطوير الحديث باستخدام Java، تعد القدرة على العمل مع قواعد البيانات (DB) من المهارات الأساسية. بغض النظر عما إذا كنت تقوم بإنشاء تطبيق ويب، خدمة جوال، أو نظام مؤسسي، ستحتاج إلى تخزين البيانات واسترجاعها ومعالجتها. في هذه المقالة، سنستعرض نظامين شائعين لإدارة قواعد البيانات (DBMS): نظام قواعد البيانات العلائقية PostgreSQL ونظام قواعد البيانات الموجهة للمستندات MongoDB. ستتعلم كيفية الاتصال بهما من تطبيق Java، تنفيذ العمليات الأساسية، وستفهم في أي الحالات تختار أي تقنية. المحتوى موجه للمطورين المبتدئين، لذا فإن جميع أمثلة الكود بسيطة قدر الإمكان ومزودة بتعليقات.
\n\n1. أساسيات العمل مع PostgreSQL في Java
\n\nPostgreSQL هو نظام إدارة قواعد بيانات علائقية كائني قوي ومفتوح المصدر. للتفاعل معه من Java، يتم استخدام برنامج تشغيل JDBC (Java Database Connectivity). دعنا نستعرض عملية الاتصال وتنفيذ الاستعلامات خطوة بخطوة.
\n\n1.1. إضافة برنامج التشغيل والإعدادات
\n\nأولاً، تحتاج إلى إضافة التبعية إلى مشروعك. إذا كنت تستخدم Maven، أضف الكتلة التالية إلى pom.xml:
<dependency>\n <groupId>org.postgresql</groupId>\n <artifactId>postgresql</artifactId>\n <version>42.7.1</version>\n</dependency>\n\nبالنسبة لـ Gradle، أضف السطر التالي إلى build.gradle:
implementation 'org.postgresql:postgresql:42.7.1'\n\n1.2. إنشاء جدول وإدراج البيانات
\n\nلنفترض أن لدينا قاعدة بيانات testdb مع مستخدم user وكلمة مرور pass. سنقوم بإنشاء جدول بسيط users وإضافة بعض السجلات.
import java.sql.*;\n\npublic class PostgresExample {\n public static void main(String[] args) {\n String url = "jdbc:postgresql://localhost:5432/testdb";\n String user = "user";\n String password = "pass";\n\n try (Connection conn = DriverManager.getConnection(url, user, password);\n Statement stmt = conn.createStatement()) {\n\n // إنشاء الجدول\n String createTableSQL = "CREATE TABLE IF NOT EXISTS users (" +\n "id SERIAL PRIMARY KEY, " +\n "name VARCHAR(100) NOT NULL, " +\n "email VARCHAR(100) UNIQUE)";\n stmt.executeUpdate(createTableSQL);\n System.out.println("تم إنشاء الجدول أو موجود بالفعل.");\n\n // إدراج البيانات\n String insertSQL = "INSERT INTO users (name, email) VALUES " +\n "('إيفان بيتروف', 'ivan@example.com'), " +\n "('ماريا سميرنوفا', 'maria@example.com')";\n int rowsInserted = stmt.executeUpdate(insertSQL);\n System.out.println("عدد الصفوف المضافة: " + rowsInserted);\n\n } catch (SQLException e) {\n e.printStackTrace();\n }\n }\n}\n\n1.3. قراءة البيانات باستخدام PreparedStatement
\n\nللعمل الآمن مع إدخال المستخدم، استخدم PreparedStatement. هذا يمنع هجمات SQL injection.
String selectSQL = "SELECT * FROM users WHERE name LIKE ?";\ntry (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {\n pstmt.setString(1, "%إيفان%");\n ResultSet rs = pstmt.executeQuery();\n\n while (rs.next()) {\n int id = rs.getInt("id");\n String name = rs.getString("name");\n String email = rs.getString("email");\n System.out.println("ID: " + id + ", الاسم: " + name + ", البريد الإلكتروني: " + email);\n }\n} catch (SQLException e) {\n e.printStackTrace();\n}\n\nكما ترى، العمل مع PostgreSQL في Java قياسي وموثق جيدًا.