Flutter Dart5
Flutter Dart5
Flutter Dart5
Existem muitas opções disponíveis hoje quando se trata de bancos de dados em seu aplicativo. Eles normalmente se
encaixam nessas três categorias:
SQflite é uma implementação do SQLite para Flutter. Ele oferece controle total sobre seu banco de dados, consultas,
relacionamentos, tudo o que você deseja.
De início a um novo projeto Flutter e altere o código padrão para criar uma nova conexão com o banco ou resgatar uma
conexão existente.
Depois importe para o arquivo principal (main) a classe para usarmos os recursos da biblioteca:
A variável bd será retornada com o status da função (true/false) caso tenha conseguido ou não criar/abrir o banco de
dados.
Obs.: Somente será criado o banco de dados uma vez, nas demais vezes ele apenas será aberto para uso e manipulação.
Criaremos uma função para instanciar o banco de dados e inserir um registro na tabela usuários. (veja os comentário de
cada linha)
Após terem inseridos alguns registros no banco de dados, vamos ver como recupera-los.
Faremos para isso uma simples função que resgatará o(s) registros(s).
Utilize a query sql para filtrar os registros com o uso do SQL.
Na exclusão de dados faremos uma leve alteração passando o Id do usuário que queremos fazer a exclusão.
Em uma situação real podemos listar os usuários e selecionar o usuário que queremos eliminar, assim teremos o id deste
usuário. Lembrando que o id é chave primária na tabela.
Veja que neste caso a função recebe uma parâmetro do tipo Int (id) para proceder com a eliminação.
Os parâmetros do db.delete()
Veja que sempre devemos instanciar o banco de dados (bd); depois criamos um objeto Map com os dados do registro que
iremos alterar, lembre-se que numa situação real esses dados virão de um TextField widget.
O objeto db, além dos outros métodos tem o método update com o seguintes parâmetros:
Primeiramente vamos montar nossa interface padrão. Um Container contendo um AppBar e um floatActionButton.
Vamos criar uma função chamada _exibirTelaCadastro(). Vamos usar o widget showDialog() para mostrar um diálogo
personalizado tanto para inclusão de um registro quanto para a alteração de um registro.
_exibirTelaCadastro( ){
showDialog(
context: context,
builder: (context){
return AlertDialog(
title: Text("anotação"),
content: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
TextField(
controller: _tituloController,
autofocus: true,
decoration: InputDecoration(
labelText: "Título",
hintText: "Digite título..."
),
),
TextField(
controller: _descricaoController,
decoration: InputDecoration(
labelText: "Descrição",
hintText: "Digite descrição..."
),
)
],
),
actions: <Widget>[
ElevatedButton(
onPressed: () => Navigator.pop(context),
child: Text("Cancelar")
),
ElevatedButton(
onPressed: (){
Navigator.pop(context);
},
child: Text("Salvar")
)
],
);
}
);
Logo antes da criação da função, não esqueça de adicionar os controllers para os campos(TextFields) que serão
preenchidos.
Primeiramente, confira se já foi feita a inclusão da dependência do pacote sqFlite. Lembre-se que já fizemos em aulas
anteriores.
https://pub.dev/packages/sqflite
https://flutterparainiciantes.com.br/stateful-stateless
https://developer.android.com/?hl=pt-br
http://flutter.dev
https://dart.dev/