NativeScript: ToDo App – Acesso ao banco de dados SQLite

Continuando mais uma etapa do desenvolvimento do aplicativo de ToDo com Nativescript, vou mostrar como fazer consultas, insert, upadate e delete no banco SQLite local.

Só lembrando, se você ainda não leu os outros dois post, leia:

  1. NativeScript: ToDo App – Estrutura base
  2. NativeScript: ToDo App – Botões e ações

No primeiro post eu já deixei criado o arquivo db.ts em shared/services. Agora chegou a hora de escrever código nesse arquivo, de criar a classe que vai acessar o banco SQLite.

Antes de escrever alguma coisa, é preciso instalar o plugin NativeScript sqlite, que é bem simples como a instalação de qualquer outro plugin:

A class DB tem uma variável pública chamada database, que será usada para guardar a instância do banco. E com essa variável que será feito as consultas na classe de serviço. Além dessa variável, eu coloquei um construtor para criar a tabela, se necessário, e conectar com o banco.

Por padrão, o retorno de um select será no formato de array, o que eu acho um pouco ruim na hora de ler o código (ex.: row[0], row[1]…). Por isso, na linha 15, eu adicionei uma configuração para o tipo de retorno. Essa configuração deixa o retorno no formato de objetos, assim o código fica mais fácil de ler e entender (row.title, row.description…).

Agora no serviço TodoService, herdando a classe DB, eu tenho acesso a variável database. Ela tem alguns método:

  • .get() – retorna a primeira linha
  • .all() – retorna todas as linhas
  • .execSQL() – esse já foi usado na classe DB. Executa sql’s select, create, insert, update e delete

O uso desses métodos ficam assim:

Com os métodos do serviço pronto, eu fiz algumas alterações no componente TodoListComponent para tratar o retorno certo dos métodos. Feito isso, o aplicativo já cria novas tarefas, lista, atualiza o status e remove.

O aplicativo completo está no github.