A persistência de dados é um aspecto crucial no desenvolvimento de aplicativos. No Flutter, uma das formas mais comuns de persistir dados é usando o SQLite, um mecanismo de banco de dados SQL embutido. Neste capítulo, vamos explorar como você pode integrar o SQLite em seu aplicativo Flutter para persistir dados.
O que é SQLite?
O SQLite é um mecanismo de banco de dados SQL que permite armazenar dados em um arquivo local no dispositivo do usuário. É leve, sem servidor e não requer uma configuração separada. O SQLite é ideal para armazenar dados simples e é amplamente utilizado em dispositivos móveis e navegadores da web.
Por que usar SQLite em Flutter?
Flutter é uma estrutura de desenvolvimento de aplicativos móveis que permite criar aplicativos nativos com uma única base de código. No entanto, o Flutter não fornece uma maneira embutida de persistir dados. Portanto, precisamos usar pacotes de terceiros, como o SQLite, para essa finalidade.
Como usar SQLite em Flutter
Para começar a usar o SQLite em Flutter, primeiro precisamos adicionar a dependência ao nosso arquivo 'pubspec.yaml':
dependencies: flutter: sdk: flutter sqflite: ^1.3.2+1
Em seguida, importamos o pacote sqflite em nosso arquivo Dart:
import 'package:sqflite/sqflite.dart';
Com a dependência instalada e importada, podemos começar a usar o SQLite. Primeiro, precisamos abrir um banco de dados. Podemos fazer isso usando a função openDatabase:
final Futuredatabase = openDatabase( // Especifique o caminho para o banco de dados join(await getDatabasesPath(), 'my_database.db'), );
Esta função cria um banco de dados se ele não existir e abre-o se existir. A função getDatabasesPath() obtém o caminho para o diretório onde o aplicativo pode armazenar dados privados do usuário.
Criando tabelas
Uma vez que o banco de dados está aberto, podemos criar tabelas nele. Para isso, podemos usar a função onCreate que é chamada quando o banco de dados é criado pela primeira vez:
final Futuredatabase = openDatabase( join(await getDatabasesPath(), 'my_database.db'), onCreate: (db, version) { return db.execute( "CREATE TABLE my_table(id INTEGER PRIMARY KEY, name TEXT)", ); }, version: 1, );
Operações CRUD
Com o banco de dados e as tabelas criados, podemos realizar operações CRUD (Create, Read, Update, Delete).
Para inserir dados, usamos a função insert:
FutureinsertData(MyData data) async { final Database db = await database; await db.insert( 'my_table', data.toMap(), conflictAlgorithm: ConflictAlgorithm.replace, ); }
Para ler dados, usamos a função query:
Future> getData() async { final Database db = await database; final List
Para atualizar dados, usamos a função update:
FutureupdateData(MyData data) async { final db = await database; await db.update( 'my_table', data.toMap(), where: "id = ?", whereArgs: [data.id], ); }
Para excluir dados, usamos a função delete:
FuturedeleteData(int id) async { final db = await database; await db.delete( 'my_table', where: "id = ?", whereArgs: [id], ); }
Em resumo, o SQLite é uma excelente opção para a persistência de dados em aplicativos Flutter. Ele fornece uma maneira fácil de armazenar dados localmente no dispositivo do usuário, tornando seu aplicativo mais responsivo e menos dependente de uma conexão de rede constante. Com a ajuda do pacote sqflite, podemos realizar todas as operações de banco de dados necessárias de maneira fácil e eficaz.