Trabalhando com bancos de dados em Swift: PostgreSQL e MongoDB para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que Swift e bancos de dados?

\n

Swift não é apenas uma linguagem para criar aplicativos móveis. Graças aos frameworks Vapor e SwiftNIO, os desenvolvedores podem criar aplicações de servidor completas que interagem com bancos de dados relacionais e orientados a documentos. Neste artigo, vamos explicar como conectar-se ao PostgreSQL e ao MongoDB a partir do Swift e mostrar exemplos de código simples para iniciantes.

\n

O artigo é voltado para quem já conhece os fundamentos do Swift, mas está começando a aprender a trabalhar com bancos de dados. Abordaremos duas abordagens populares: SQL clássico (PostgreSQL) e NoSQL flexível (MongoDB).

\n\n

1. PostgreSQL em Swift: Dados estruturados

\n

PostgreSQL é um poderoso banco de dados relacional de código aberto. Para trabalhar com ele em Swift, usaremos o pacote PostgresKit, que faz parte do ecossistema Vapor.

\n\n

1.1 Instalação e configuração

\n

Adicione a dependência no arquivo 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 Conexão ao banco de dados

\n

Crie uma instância de configuração e conecte-se ao servidor 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("Conexão com PostgreSQL estabelecida!")
\n\n

1.3 Executando consultas SQL

\n

Agora vamos executar uma consulta simples para criar uma tabela e inserir dados:

\n
// Criando a tabela de usuários\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// Inserindo dados\ntry connection.query("""\n    INSERT INTO users (name, email) \n    VALUES ('Alexey', 'alex@example.com')\n""").wait()\n\n// Lendo dados\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("Usuário: \\(name) (\\(email)), ID: \\(id)")\n}
\n\n

2. MongoDB em Swift: Documentos flexíveis

\n

MongoDB é um banco de dados NoSQL que armazena dados em formato de documentos semelhantes a JSON. Para Swift, existem vários drivers, mas usaremos o oficial MongoDB Swift Driver.

\n\n

2.1 Instalação do driver

\n

Adicione o pacote no 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 Conexão ao MongoDB

\n

Crie um cliente e selecione um banco de dados:

\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