➜ Métodos para gestionar la DB DbHelper
Implementación de los métodos para gestionar la BD DbHelper Flutter | ¿Qué métodos son necesarios para administrar la BD? los principales que usaremos son: Inserción por cada modelo y lectura, además de otros como adicionales
En esta ocación implementaremos los métodos necesarios para gestionar nuestra base de datos como son:
- Inserción por cada Modelo
- Lectura de datos por cada Modelo
- Adicionales como: Count(), Lectura por ID, etc
Recordemos que tenemos 3 modelos
CÓDIGO PARA EL MODELO CATEGORIA
// métodos categoria
  Future<int> saveCategoria(Categoria categoria) async{
    var dbCliente = await bd;
    int response = await dbCliente.insert("categoria", categoria.toMap());
    return response;
  }
  Future<List<Categoria>> getCategoria(String condicion) async{
    var dbCliente = await bd;
    List<Map> lista = await dbCliente.rawQuery("SELECT * FROM categoria WHERE "+condicion);
    List<Categoria> categoria = new List();
    for(int i = 0; i<lista.length; i++){
      categoria.add(new Categoria(
          lista[i]["id"],
          lista[i]["nombre"],
          lista[i]["urlfoto"],
        )
      );
    }
    return categoria;
  }
CÓDIGO PARA EL MODELO SUBCATEGORIA
// métodos subcategoria
  Future<int> saveSubcategoria(Subcategoria subcategoria) async{
    var dbCliente = await bd;
    int response = await dbCliente.insert("subcategoria", subcategoria.toMap());
    return response;
  }
  Future<List<Subcategoria>> getSubcategoria(String condicion) async{
    var dbCliente = await bd;
    List<Map> lista = await dbCliente.rawQuery("SELECT * FROM subcategoria WHERE "+condicion);
    List<Subcategoria> subcategoria = new List();
    for(int i = 0; i<lista.length; i++){
      subcategoria.add(new Subcategoria(
        lista[i]["id"],
        lista[i]["nombre"],
        lista[i]["urlfoto"],
        lista[i]["categorias_id"]
      )
      );
    }
    return subcategoria;
  }
CÓDIGO PARA EL MODELO PRODUCTO
// métodos productos
  Future<int> saveProducto(Producto p) async{
    var dbCliente = await bd;
    int response = await dbCliente.insert("producto", p.toMap());
    return response;
  }
  Future<List<Producto>> getProducto(String condicion) async{
    var dbCliente = await bd;
    List<Map> lista = await dbCliente.rawQuery("SELECT * FROM producto WHERE "+condicion);
    List<Producto> producto = new List();
    for(int i = 0; i<lista.length; i++){
      producto.add(new Producto(
          lista[i]["id"],
          lista[i]["nombre"],
          lista[i]["descripcion"],
          lista[i]["precio"],
          lista[i]["urlfoto"],
          lista[i]["unidad"],
          lista[i]["subcategorias_id"]
      )
      );
    }
    return producto;
  }
Finalmente agregamos un método adicional para el vaciado de las tablas
// borrar registros vaciar
  Future<int> deleteTable(String tabla, String condicion) async{
    var dbCliente = await bd;
    return await dbCliente.rawDelete("delete from "+tabla+" where "+condicion);
  }
2108 visitas
Capítulo 37 – Modelo Carrito »
Descarga el código del proyecto
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar