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

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

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

ابدأ الدورة

مقدمة: لماذا Swift وقواعد البيانات؟

\n

Swift ليست مجرد لغة لإنشاء تطبيقات الجوال. بفضل الأطر Vapor و SwiftNIO، يمكن للمطورين إنشاء تطبيقات خادم متكاملة تتفاعل مع قواعد البيانات العلائقية والموجهة للمستندات. في هذه المقالة، سنشرح كيفية الاتصال بـ PostgreSQL و MongoDB من Swift، وسنقدم أمثلة بسيطة من الكود للمبتدئين.

\n

المقالة موجهة لأولئك الذين هم على دراية بأساسيات Swift، ولكنهم بدأوا للتو في تعلم العمل مع قواعد البيانات. سننظر في نهجين شائعين: SQL الكلاسيكي (PostgreSQL) و NoSQL المرن (MongoDB).

\n\n

1. PostgreSQL في Swift: البيانات المنظمة

\n

PostgreSQL هي قاعدة بيانات علائقية قوية مفتوحة المصدر. للعمل معها في Swift، سنستخدم الحزمة PostgresKit، التي تعد جزءًا من نظام Vapor البيئي.

\n\n

1.1 التثبيت والإعداد

\n

أضف التبعية إلى ملف Package.swift:

\n
// swift-tools-version:5.7\nimport PackageDescription\n\nlet package = Package(\n    name: "MyApp",\n    dependencies: [\n        .package(url: "https://github.com/vapor/postgres-kit.git", from: "2.0.0")\n    ],\n    targets: [\n        .executableTarget(\n            name: "MyApp",\n            dependencies: [\n                .product(name: "PostgresKit", package: "postgres-kit")\n            ]\n        )\n    ]\n)
\n\n

1.2 الاتصال بقاعدة البيانات

\n

أنشئ مثيل تكوين واتصل بخادم PostgreSQL:

\n
import PostgresKit\n\nlet eventLoopGroup = MultiThreadedEventLoopGroup(numberOfThreads: 1)\ndefer { try! eventLoopGroup.syncShutdown() }\n\nlet configuration = PostgresConfiguration(\n    hostname: "localhost",\n    port: 5432,\n    username: "swift_user",\n    password: "secret",\n    database: "swift_db"\n)\n\nlet pool = EventLoopGroupConnectionPool(\n    source: PostgresConnectionSource(configuration: configuration),\n    on: eventLoopGroup\n)\ndefer { try! pool.syncShutdown() }\n\nlet connection = try pool.requestConnection().wait()\nprint("تم إنشاء الاتصال بـ PostgreSQL!")
\n\n

1.3 تنفيذ استعلامات SQL

\n

الآن سنقوم بتنفيذ استعلام بسيط لإنشاء جدول وإدراج البيانات:

\n
// إنشاء جدول المستخدمين\ntry connection.query("""\n    CREATE TABLE IF NOT EXISTS users (\n        id SERIAL PRIMARY KEY,\n        name TEXT NOT NULL,\n        email TEXT UNIQUE NOT NULL\n    )\n""").wait()\n\n// إدراج البيانات\ntry connection.query("""\n    INSERT INTO users (name, email) \n    VALUES ('أليكسي', 'alex@example.com')\n""").wait()\n\n// قراءة البيانات\nlet rows = try connection.query("SELECT * FROM users").wait()\nfor row in rows {\n    let id = try row.decode(Int.self, column: "id")\n    let name = try row.decode(String.self, column: "name")\n    let email = try row.decode(String.self, column: "email")\n    print("المستخدم: \\(name) (\\(email)), المعرف: \\(id)")\n}
\n\n

2. MongoDB في Swift: المستندات المرنة

\n

MongoDB هي قاعدة بيانات NoSQL تخزن البيانات بتنسيق مستندات تشبه JSON. يوجد العديد من المحركات لـ Swift، لكننا سنستخدم المحرك الرسمي MongoDB Swift Driver.

\n\n

2.1 تثبيت المحرك

\n

أضف الحزمة إلى Package.swift:

\n
dependencies: [\n    .package(url: "https://github.com/mongodb/mongo-swift-driver.git", from: "1.0.0")\n],\ntargets: [\n    .executableTarget(\n        name: "MyApp",\n        dependencies: [\n            .product(name: "MongoSwift", package: "mongo-swift-driver")\n        ]\n    )\n]
\n\n

2.2 الاتصال بـ MongoDB

\n

أنشئ عميلاً واختر قاعدة البيانات:

\n
import MongoSwift\n\nlet client = try MongoClient("mongodb://localhost:27017")\ndefer { try? client.syncClose() }\n\nlet database = client.db("swift_m                

المدونات

توصيات الكتب