gpt4 book ai didi

sql - (SQFLite) 从 2 个连接表中检索数据并将结果查询转换为列表

转载 作者:行者123 更新时间:2023-12-03 04:28:04 27 4
gpt4 key购买 nike

我的应用中有两个模型,分别命名为 Basket 和 Items。模型篮包含项目列表。所以如下:

篮子:

int id
string name
string imageUrl
List<Items> items

项目:
string name
string description
int basketId

_

我的 2 张 table :

篮子:
id
name
imageUrl

项目:
id
name
description
basketId

我想要做的是检索所有篮子及其所有相应的项目并制作一个 List basketList 对象。我试图加入表格,但我以 4 个包含空项目的篮子而不是一个包含 4 个项目的篮子结束。我正在使用 SQFLite 进行 flutter 。

最佳答案

您可以在不加入表格的情况下执行此操作。首先,您从 sqflite 获得篮子的 Maplist。接下来,当您从 Map 对象转换为 Basket() 对象时,对于列表中的每个篮子,您将获取项目列表并将项目列表添加到篮子中。您可以使用辅助映射函数将 Map 对象从 sqflite 映射到您的对象类。

Future<List<Basket>> getBasketList() async{

var basketMapList = await getBasketMapList();
int count = basketMapList.length;

List<Basket> basketList = List<Basket>();

for (int i=0; i<count; i++){

basketList.add(Basket.fromMapObject(basketMapList[i]));

// for each basket, add the list of items...
Future<List<Item>> itemListFuture = getBasketItemList(basketList[i].basketid);
itemListFuture.then(
(itemList) {

basketList[i].items = itemList;

},
);
}

return basketList;

}
// in basket class. Write a similar function for your items object. 
fromMapObject(Map<String, dynamic> map) {
this.id = map['id'];
this.name = map['name'];
this.imageurl = map['imageurl'];
}

关于sql - (SQFLite) 从 2 个连接表中检索数据并将结果查询转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57962686/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com