ORM (DB)
ORM embutido (DB)
O XanaScript tem ORM embutido com typesafety: declare um DB e ganhe CRUD automático, sem dependências.
Declarando uma tabela
DB Usuario {
nome: eh-palavra,
idade: eh-numero,
email: eh-palavra
}Os tipos de coluna aceitam eh-palavra, eh-numero, eh-booleano, eh-data, eh-qualquer (e variantes maiúsculas TEXTO, NUMERO, BOOLEANO, DATA, QUALQUER).
CRUD completo
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?())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
As colunas são validadas contra o tipo declarado. Inserir um valor de tipo errado lista os campos inválidos.
Armazenamento
Os dados ficam em .db/<modelo>.json no diretório do projeto. Antes de cada save é criado um backup .bak, com restauração automática se o arquivo corromper.