Transações e CRUD
Adicione, leia, atualize e exclua registros.
Transações e CRUD é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 4 aulas no total.
Tudo é uma transação
No IndexedDB, todas as leituras e gravações acontecem dentro de uma transação. Uma transação agrupa operações para que todas tenham sucesso ou todas sejam revertidas, mantendo os dados consistentes.
Iniciando uma transação
Crie uma com db.transaction(storeNames, mode). O modo é 'readonly' (padrão) ou 'readwrite' para modificações.
const tx = db.transaction('notes', 'readwrite');
const store = tx.objectStore('notes');Obtendo o armazenamento de objetos
Na transação, obtenha o armazenamento de objetos com o qual deseja trabalhar usando tx.objectStore(name). Todos os métodos de CRUD estão nesse armazenamento.
const tx = db.transaction('notes', 'readwrite');
const store = tx.objectStore('notes');
// store.add / get / put / deleteAdicionando registros
store.add(value) insere um novo registro. A operação falha se já existir um registro com a mesma chave, o que protege contra substituições acidentais.
const store = tx.objectStore('notes');
const req = store.add({ id: 1, text: 'Buy milk' });
req.onsuccess = () => console.log('added with key', req.result);Lendo um registro
store.get(key) recupera um registro pela chave. O resultado chega em onsuccess da solicitação como request.result (undefined se não for encontrado).
const req = store.get(1);
req.onsuccess = () => {
console.log('record:', req.result);
};Atualizando com put
store.put(value) insere ou substitui um registro. Diferentemente de add, ele substitui um registro existente com a mesma chave, sendo ideal para atualizações.
store.put({ id: 1, text: 'Buy milk and eggs' });
// Replaces the existing record with id 1.Excluindo um registro
store.delete(key) remove o registro com a chave fornecida. A operação tem sucesso mesmo que não exista um registro com essa chave.
const req = store.delete(1);
req.onsuccess = () => console.log('deleted');Limpando um armazenamento
store.clear() remove de uma só vez todos os registros do armazenamento de objetos. Use-o para redefinir os dados armazenados em cache.
store.clear();
// All records in 'notes' are removed.Conclusão da transação
A própria transação dispara oncomplete quando todas as suas operações são confirmadas, e onerror ou onabort se algo falha. Use oncomplete para saber que as gravações são persistentes.
tx.oncomplete = () => console.log('all changes saved');
tx.onerror = () => console.log('transaction failed');Comportamento de confirmação automática
As transações são confirmadas automaticamente quando o controle retorna ao ciclo de eventos sem solicitações pendentes. Você não pode manter uma transação aberta durante um await de uma operação assíncrona não relacionada; execute todas as operações do armazenamento em conjunto.
// Queue operations synchronously within the same tx:
store.add({ id: 2, text: 'A' });
store.add({ id: 3, text: 'B' });
// Both commit together when tx completes.Resumo de CRUD
As quatro operações principais correspondem diretamente:
- Criar:
add - Ler:
get - Atualizar:
put - Excluir:
delete
Tudo dentro de uma transaction que garante a consistência.
Verificação rápida
Teste sua compreensão sobre transactions e CRUD.
Recapitulação
Você aprendeu sobre transactions e CRUD:
- Comece com
db.transaction(store, mode). - Obtenha o store com
tx.objectStore(name). addinsere,getlê,putinsere ou atualiza, edeleteremove.- Os resultados chegam em
onsuccessde cada requisição. tx.oncompleteconfirma que as alterações foram salvas.
Em seguida, veremos índices e consultas.
Perguntas Frequentes
A aula “Transações e CRUD” é grátis?
Sim — o texto completo de “Transações e CRUD” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 4 aulas no total.
O que vou aprender em “Transações e CRUD”?
Adicione, leia, atualize e exclua registros. Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar JavaScript Academy?
Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Transações e CRUD”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de JavaScript Academy?
Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.