arrow_back Voltar ao curso

CRUD com ORM — Dados sem SQL

Fundamentos do XanaScript • Aula 19 de 20

O ORM embutido (a keyword DB) te dá um banco de dados com validação de tipos, sem dependências. Declare um modelo e ganhe CRUD automático.

Declarando uma tabela

js
DB Usuario {
  nome: eh-palavra,
  idade: eh-numero,
  email: eh-palavra
}

O DB diz: "cria um armazenamento chamado Usuario, onde todo registro precisa ter esses campos com esses tipos".

Por que um ORM?

Sem ORM você escreveria SQL à mão, cuidaria de conexão, validação, backup. O ORM remove a cerimônia: declara o formato e usa. Os tipos declarados (eh-palavra, eh-numero) viram validação automática — inserir um valor de tipo errado é rejeitado na hora, com os campos inválidos listados.

CRUD completo

js
DB Usuario {
  nome: eh-palavra,
  idade: eh-numero,
  email: eh-palavra
}

cria repo = Usuario

// CREATE
repo.bota-ai({ nome: "João", idade: 30, email: "[email protected]" })
repo.bota-ai({ nome: "Maria", idade: 25, email: "[email protected]" })

// READ (lista todos)
cria todos = repo.vê()
grita-ae(todos)

// READ (por id)
cria usuario = repo.acha(1)
grita-ae("Usuário 1:", usuario)

// UPDATE
repo.alterakkkk(1, { nome: "João Silva", idade: 31 })

// DELETE
repo.apaga-ae(3)

// FILTER
cria jovens = repo.achaOnde({ idade: 25 })

// COUNT
grita-ae("Total:", repo.quantos?())

CRUD é o básico de todo sistema

Create (criar), Read (ler), Update (atualizar), Delete (apagar) — 90% das aplicações são CRUD sobre alguma coisa: usuários, produtos, pedidos, posts. Dominar esse padrão destrava tudo.

Métodos do DB

Método Descrição
bota-ai(dados) insere; retorna com id e criadoEm
vê() lista todos
acha(id) busca por id (ou nulo)
altera(id, mudancas) atualiza
alterakkkk(id, mudancas) alias de altera
apaga-ae(id) deleta
achaOnde(filtro) filtra por campos
select(campos) retorna só campos selecionados
quantos?() conta registros
limpar() apaga tudo

Validação

Inserir tipo errado é rejeitado na hora:

js
repo.bota-ai({ nome: 123 })   // ERRO: nome precisa ser eh-palavra

Onde os dados ficam?

Em .db/<modelo>.json no diretório do projeto — nada de servidor de banco pra configurar. Antes de cada save, um backup .bak é criado, com restauração automática se o arquivo corromper. Ou seja: seus dados não somem por um arquivo quebrado.

Exercício

Crie um CRUD de Produto com nome, preço e estoque. Insira 3 produtos, filtre por estoque: 10, atualize um, e imprima a contagem.

Comentários