Lección 35: Creación de la Base de Datos Sqflite
En esta sección programaremos la base de datos para nuestra aplicación Flutter.
¿Por que necesitamos una base de datos en nuestra aplicación Flutter?
Sencillamente porque la Base de Datos nos ayudará a almacenar la información que necesitamos mostrar en nuestra app, estos datos son extraidos mediante la API Rest en formato JSON.
Dicho esto; vamos a proceder a implementar nuestra base de datos.
- En la leccion 34 si recordamos creamos los modelos donde claramente notamos lo siguiente: que necesitamos 3 tablas prioritarias (Categoria, Subcategoria y Producto) para gestionar la data.
- En esta lección solo vamos a crear la Base de Datos y las 3 tablas mencionadas.
PAQUETES QUE DEBEMOS AGREGA A PUBSPEC.YAML
- Provider
- Path_provider
- Sqflite
CÓDIGO DE LA CLASE DBHELPER
- Agregamos el siguiente código en Bd.dart
import 'package:arequipalocal/modelo/Categoria.dart';
import 'package:arequipalocal/modelo/Producto.dart';
import 'package:arequipalocal/modelo/Subcategoria.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';
import 'dart:io' as io;
// dbmanager
class DBHelper{
static Database _db;
Future<Database> get bd async{
if(_db != null)
return _db;
_db = await iniciarDB();
return _db;
}
iniciarDB() async{
io.Directory d =await getApplicationDocumentsDirectory();
String path = join(d.path, "arequipalocal.db" );
var base = await openDatabase(path, version: 1,onCreate: _onCreate);
return base;
}
void _onCreate(Database db, int version) async{
await db.execute("CREATE TABLE categoria(id INTEGER, nombre TEXT, urlfoto TEXT)");
await db.execute("CREATE TABLE subcategoria(id INTEGER, nombre TEXT, urlfoto TEXT, categorias_id TEXT)");
await db.execute("CREATE TABLE producto(id INTEGER, nombre TEXT, descripcion TEXT, precio REAL, urlfoto TEXT, unidad TEXT, subcategorias_id TEXT )");
print("TABLAS CREADAS CORRECTAMENTE");
}
Finalmente, con esto solo tenemos las instrucciones para crear la Base de Datos en un espacio en nuestro dispositivo bajo un nombre y sus correspondientes tablas.
1279 visitas