Volver a la página principal
viernes 22 noviembre 2024
52

Cómo usar sqflite en Flutter para gestionar bases de datos SQLite

El paquete sqflite es una biblioteca popular en Flutter que permite interactuar con bases de datos SQLite de manera eficiente. Con él, puedes realizar operaciones como insertar, leer, actualizar y eliminar datos, haciendo que sea ideal para aplicaciones que requieren almacenamiento local persistente.

¿Qué es sqflite y por qué usarlo?

El paquete sqflite es una solución robusta para manejar bases de datos SQLite en aplicaciones Flutter. Permite crear bases de datos, definir tablas y ejecutar consultas SQL, combinando el poder de SQL con la simplicidad de Dart. Es ampliamente usado por su rendimiento y soporte para operaciones asincrónicas.

Ventajas de sqflite:

  • Compatible con múltiples plataformas (Android e iOS).
  • Ejecución de transacciones para mantener la integridad de datos.
  • Operaciones asincrónicas para un mejor rendimiento.

Cómo configurar sqflite en Flutter

Pasos iniciales:

1. Añadir la dependencia al proyecto:

Agrega el paquete en el archivo pubspec.yaml:

dependencies:
     sqflite: ^2.0.0+3
     path: ^1.8.0

(El paquete path ayuda a manejar rutas de archivos).

2. Importar los paquetes necesarios:

En tu archivo Dart, importa:

import 'package:sqflite/sqflite.dart';
   import 'package:path/path.dart';

3. Inicializar la base de datos:

Usa la función openDatabase para crear o acceder a una base de datos:

Future<Database> openDb() async {
     final databasePath = await getDatabasesPath();
     final path = join(databasePath, 'mi_base_de_datos.db');
     return openDatabase(
       path,
       version: 1,
       onCreate: (db, version) {
         return db.execute(
           'CREATE TABLE usuarios(id INTEGER PRIMARY KEY, nombre TEXT, edad INTEGER)',
         );
       },
     );
   }

Métodos comunes en sqflite

Método Descripción Ejemplo de uso
insert Inserta datos en una tabla. db.insert('usuarios', {'nombre': 'Juan', 'edad': 30});
query Recupera datos de una tabla. db.query('usuarios');
update Actualiza registros existentes. db.update('usuarios', {'edad': 31}, where: 'id = ?', whereArgs: 1]);
delete Elimina registros de una tabla. db.delete('usuarios', where: 'id = ?', whereArgs: 1]);
execute Ejecuta una consulta SQL personalizada. db.execute('DROP TABLE IF EXISTS usuarios');

Ejemplos prácticos

Insertar datos

void agregarUsuario(Database db) async {
  await db.insert(
    'usuarios',
    {'nombre': 'Ana', 'edad': 25},
  );
}

Leer datos

void leerUsuarios(Database db) async {
  final List<Map<String, dynamic>> usuarios = await db.query('usuarios');
  print(usuarios);
}

Actualizar datos

void actualizarUsuario(Database db) async {
  await db.update(
    'usuarios',
    {'edad': 26},
    where: 'nombre = ?',
    whereArgs: ['Ana'],
  );
}

Eliminar datos

void eliminarUsuario(Database db) async {
  await db.delete(
    'usuarios',
    where: 'id = ?',
    whereArgs: [1],
  );
}

Recursos adicionales

Etiquetas:
dart flutter
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer