Uma parte essencial do desenvolvimento de aplicativos é a gestão de dados. Em muitos aplicativos, é necessário armazenar informações de maneira persistente para que possam ser acessadas mesmo após o aplicativo ser reiniciado ou o dispositivo ser desligado. Aqui, vamos discutir como trabalhar com bancos de dados locais em Flutter usando Dart.
SQLite em Flutter
SQLite é uma biblioteca em C que fornece um banco de dados leve baseado em disco que não requer um processo de servidor separado e permite acessar o banco de dados usando uma variante não padrão do SQL. No Flutter, usamos a biblioteca sqflite para manipular SQLite.
Instalação
Para começar, precisamos adicionar a dependência sqflite ao nosso arquivo pubspec.yaml. Também vamos adicionar o caminho do provedor, que usaremos para encontrar o caminho para o diretório do banco de dados.
dependencies: flutter: sdk: flutter sqflite: any path_provider: any
Execute o comando 'flutter packages get' para instalar as dependências.
Abertura de um banco de dados
Podemos abrir o banco de dados usando o método openDatabase. Se o banco de dados não existir, ele será criado. Aqui está um exemplo de como abrir um banco de dados:
import 'package:sqflite/sqflite.dart'; void openDatabase() async { final database = await openDatabase( join(await getDatabasesPath(), 'doggie_database.db'), ); }
Criação de tabelas
Depois de abrir o banco de dados, podemos criar tabelas nele. O método onCreate é chamado quando o banco de dados é criado pela primeira vez.
final database = await openDatabase( join(await getDatabasesPath(), 'doggie_database.db'), onCreate: (db, version) { return db.execute( "CREATE TABLE dogs(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)", ); }, version: 1, );
Inserção de dados
Podemos inserir dados em nossa tabela usando o método insert. Este método salva automaticamente os dados em um formato que SQLite pode entender.
FutureinsertDog(Dog dog) async { final db = await database; await db.insert( 'dogs', dog.toMap(), conflictAlgorithm: ConflictAlgorithm.replace, ); }
Consulta de dados
Podemos consultar os dados em nosso banco de dados usando o método query. Este método retorna uma lista de mapas, onde cada mapa é um registro no banco de dados.
Future> dogs() async { final db = await database; final List
Atualização de dados
Podemos atualizar os dados em nosso banco de dados usando o método update. Este método leva um mapa de valores para atualizar.
FutureupdateDog(Dog dog) async { final db = await database; await db.update( 'dogs', dog.toMap(), where: "id = ?", whereArgs: [dog.id], ); }
Exclusão de dados
Podemos excluir dados do nosso banco de dados usando o método delete.
FuturedeleteDog(int id) async { final db = await database; await db.delete( 'dogs', where: "id = ?", whereArgs: [id], ); }
Trabalhar com bancos de dados locais em Flutter é simples e direto, graças à biblioteca sqflite. Com ela, podemos realizar uma variedade de operações de banco de dados, como inserir, consultar, atualizar e excluir dados.
Em resumo, a manipulação de dados é uma parte crucial do desenvolvimento de aplicativos e o Flutter, com sua biblioteca sqflite, torna essa tarefa mais fácil. Com um pouco de prática, você estará confortável em lidar com bancos de dados locais em seus aplicativos Flutter.