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.

Future insertDog(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> maps = await db.query('dogs');

  return List.generate(maps.length, (i) {
    return Dog(
      id: maps[i]['id'],
      name: maps[i]['name'],
      age: maps[i]['age'],
    );
  });
}

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.

Future updateDog(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.

Future deleteDog(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.

Agora responda o exercício sobre o conteúdo:

Qual biblioteca é usada para trabalhar com bancos de dados locais em Flutter?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Autenticação e segurança em Flutter 184

Próxima página do Ebook Gratuito:

Autenticação e segurança em Flutter

Tempo estimado de leitura: 3 minutos

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.

+ de 9 milhões
de alunos

Certificado grátis e
válido em todo o Brasil

60 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, ebooks e audiobooks