العمل مع قواعد البيانات في Java: PostgreSQL وMongoDB

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة في العمل مع قواعد البيانات في Java



نادرًا ما يخلو تطوير Java الحديث من التفاعل مع أنظمة تخزين البيانات. يُعد الاختيار بين قواعد البيانات العلائقية (SQL) وغير العلائقية (NoSQL) أحد المهام المعمارية الرئيسية. في هذه المقالة، وباستخدام PostgreSQL (نظام إدارة قواعد بيانات علائقية كلاسيكي) وMongoDB (قاعدة بيانات NoSQL موجهة للمستندات) كأمثلة، سنستعرض الأساليب الأساسية وأفضل الممارسات ونقدم أمثلة جاهزة للكود. ستكون المادة مفيدة لكل من المطورين المبتدئين وذوي الخبرة الذين يرغبون في تنظيم معرفتهم.



1. الاتصال والعمل مع PostgreSQL في Java



1.1 إعداد برنامج تشغيل JDBC



PostgreSQL هي واحدة من أشهر قواعد البيانات العلائقية. للعمل معها من Java، يتم استخدام برنامج التشغيل JDBC. أضف التبعية في pom.xml (Maven):



<dependency>    <groupId>org.postgresql</groupId>    <artifactId>postgresql</artifactId>    <version>42.6.0</version></dependency>


بعد إضافة برنامج التشغيل، يمكن إنشاء الاتصال:



import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;

public class PostgresConnection { public static void main(String[] args) { String url = "jdbc:postgresql://localhost:5432/mydb"; String user = "admin"; String password = "secret";

try (Connection conn = DriverManager.getConnection(url, user, password)) { System.out.println("تم إنشاء الاتصال بـ PostgreSQL!"); } catch (SQLException e) { e.printStackTrace(); } }}


1.2 عمليات CRUD (إنشاء، قراءة، تحديث، حذف)



لننظر إلى مثال للعمل مع جدول users. إنشاء سجل:



String insertSQL = "INSERT INTO users (name, email) VALUES (?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) {    pstmt.setString(1, "إيفان بيتروف");    pstmt.setString(2, "ivan@example.com");    pstmt.executeUpdate();}


قراءة البيانات:



String selectSQL = "SELECT * FROM users WHERE id = ?";try (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {    pstmt.setInt(1, 1);    ResultSet rs = pstmt.executeQuery();    while (rs.next()) {        System.out.println(rs.getString("name") + " - " + rs.getString("email"));    }}


يتم تنفيذ التحديث والحذف بطريقة مماثلة باستخدام UPDATE وDELETE مع PreparedStatement. استخدم دائمًا الاستعلامات ذات المعلمات - فهذا يحمي من هجمات SQL Injection.



1.3 استخدام تجمع الاتصالات (HikariCP)



في بيئة الإنتاج، لا يُنصح بفتح اتصال جديد لكل طلب. استخدم تجمع الاتصالات. أضف التبعية:



<dependency>    <groupId>com.zaxxer</groupId>    <artifactId>HikariCP</artifactId>    <version>5.0.1</version></dependency>


الإعدادات:



HikariConfig config = new HikariConfig();config.setJdbcUrl("jdbc:postgresql://localhost:5432/mydb");config.setUsername("admin");config.setPassword("secret");config.setMaximumPoolSize(10);

HikariDataSource ds = new HikariDataSource(config);Connection conn = ds.getConnection();


2. الاتصال والعمل مع MongoDB في Java



2.1 إعداد برنامج تشغيل MongoDB Java Driver



MongoDB تخزن البيانات بتنسيق مستندات شبيهة بـ JSON. للعمل معها، يتم استخدام برنامج التشغيل الرسمي. تبعية Maven:



<dependency>    <groupId>org.mongodb</groupId>    <artifactId>mongodb-driver-sync</artifactId>    <version>4.10.2</version></dependency>


الاتصال بقاعدة بيانات محلية:





                
                

المدونات

توصيات الكتب