Lección 36: Métodos para gestionar la DB DbHelper
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);
}
868 visitas