A persistência de dados é uma das partes fundamentais do desenvolvimento de aplicativos. No Flutter, uma das maneiras mais comuns de persistir dados é usar o SQLite, um banco de dados leve e eficiente que pode ser facilmente incorporado em um aplicativo. Neste módulo, vamos discutir como atualizar dados em um banco de dados SQLite usando Flutter e Dart.
O SQLite é um banco de dados relacional que permite armazenar, recuperar, atualizar e deletar dados de forma eficiente. Ele é amplamente utilizado em aplicativos móveis devido à sua leveza e simplicidade. Para usar o SQLite no Flutter, precisamos usar um pacote chamado sqflite.
Instalando o sqflite
Para começar, precisamos adicionar o sqflite ao nosso projeto. Podemos fazer isso adicionando a seguinte linha ao nosso arquivo pubspec.yaml:
dependencies: flutter: sdk: flutter sqflite: ^2.0.0+3
Agora, podemos importar o sqflite em nosso arquivo Dart:
import 'package:sqflite/sqflite.dart';
Atualizando dados no SQLite
Para atualizar dados no SQLite, precisamos primeiro abrir uma conexão com o banco de dados. Podemos fazer isso usando o método openDatabase. Este método retorna um objeto Database que podemos usar para interagir com o banco de dados.
Em seguida, precisamos criar uma instrução SQL UPDATE para atualizar os dados. A instrução UPDATE modifica os valores de uma ou mais colunas em uma ou mais linhas em uma tabela. A sintaxe básica de uma instrução UPDATE no SQLite é a seguinte:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
No Flutter, podemos executar uma instrução SQL usando o método rawUpdate do objeto Database. Por exemplo, para atualizar a idade de um usuário, podemos fazer o seguinte:
int count = await db.rawUpdate( 'UPDATE User SET age = ? WHERE name = ?', ['new_age', 'old_name'] );
Este código atualiza a coluna 'age' para 'new_age' para todas as linhas onde a coluna 'name' é igual a 'old_name'. O método rawUpdate retorna o número de linhas afetadas pela atualização.
Podemos também usar o método update do objeto Database para atualizar dados. Este método aceita o nome da tabela e um mapa de valores de coluna. Por exemplo:
int count = await db.update( 'User', {'age': 'new_age'}, where: 'name = ?', whereArgs: ['old_name'] );
Este código faz a mesma coisa que o exemplo anterior, mas usa o método update em vez de rawUpdate. O método update é mais seguro e mais fácil de usar do que rawUpdate, pois escapa automaticamente os valores e evita a injeção de SQL.
Conclusão
Atualizar dados em um banco de dados SQLite no Flutter é uma tarefa simples e direta. Com o pacote sqflite, podemos facilmente executar instruções SQL para atualizar os dados. Lembre-se de sempre fechar a conexão com o banco de dados quando terminar de usá-la para evitar vazamentos de memória.
No próximo módulo, vamos discutir como deletar dados de um banco de dados SQLite no Flutter. Fique ligado!