Travailler avec les bases de données en Swift : PostgreSQL et MongoDB pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Pourquoi Swift et les bases de données ?

\n

Swift n'est pas seulement un langage pour créer des applications mobiles. Grâce aux frameworks Vapor et SwiftNIO, les développeurs peuvent créer des applications serveur complètes qui interagissent avec des bases de données relationnelles et orientées documents. Dans cet article, nous allons voir comment se connecter à PostgreSQL et MongoDB depuis Swift, et montrer des exemples de code simples pour les débutants.

\n

Cet article s'adresse à ceux qui connaissent déjà les bases de Swift, mais qui commencent tout juste à apprendre le travail avec les bases de données. Nous aborderons deux approches populaires : le SQL classique (PostgreSQL) et le NoSQL flexible (MongoDB).

\n\n

1. PostgreSQL en Swift : Données structurées

\n

PostgreSQL est une base de données relationnelle puissante et open source. Pour travailler avec elle en Swift, nous utiliserons le paquet PostgresKit, qui fait partie de l'écosystème Vapor.

\n\n

1.1 Installation et configuration

\n

Ajoutez la dépendance dans le fichier 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 Connexion à la base de données

\n

Créez une instance de configuration et connectez-vous au serveur 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("Connexion à PostgreSQL établie !")
\n\n

1.3 Exécution de requêtes SQL

\n

Exécutons maintenant une requête simple pour créer une table et insérer des données :

\n
// Création de la table des utilisateurs\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// Insertion de données\ntry connection.query("""\n    INSERT INTO users (name, email) \n    VALUES ('Alexeï', 'alex@example.com')\n""").wait()\n\n// Lecture des données\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("Utilisateur : \\(name) (\\(email)), ID : \\(id)")\n}
\n\n

2. MongoDB en Swift : Documents flexibles

\n

MongoDB est une base de données NoSQL qui stocke les données dans un format de documents de type JSON. Pour Swift, il existe plusieurs pilotes, mais nous utilisons le pilote officiel MongoDB Swift Driver.

\n\n

2.1 Installation du pilote

\n

Ajoutez le paquet dans 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 Connexion à MongoDB

\n

Créez un client et sélectionnez une base de données :

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

Blogs

Book Recommendations