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.
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.
sqflite
:
sqflite
en Flutter
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)',
);
},
);
}
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');
|
void agregarUsuario(Database db) async {
await db.insert(
'usuarios',
{'nombre': 'Ana', 'edad': 25},
);
}
void leerUsuarios(Database db) async {
final List<Map<String, dynamic>> usuarios = await db.query('usuarios');
print(usuarios);
}
void actualizarUsuario(Database db) async {
await db.update(
'usuarios',
{'edad': 26},
where: 'nombre = ?',
whereArgs: ['Ana'],
);
}
void eliminarUsuario(Database db) async {
await db.delete(
'usuarios',
where: 'id = ?',
whereArgs: [1],
);
}
Jorge García
Fullstack developer