mar*_*EBR 3 dart flutter sqflite
我最近开始使用 Flutter。\n我的应用程序运行 sqflite 数据库,我想从中获取所有数据并将其显示在我的应用程序中的行小部件中。
\n我知道如何获取数据,并且知道如何构建小部件。\n我\xc2\xb4m 很困惑,我不知道如何将从数据库获取的数据转换为列表(用它我可以构建我的列表)小部件)。
\n所以我得到了未来清单,但我需要清单饮料
\n只是看看:
\n我的对象:
\nclass Drink {\n int id;\n String time;\n int amount;\n\n Drink({this.id, this.time, this.amount});\n}\nRun Code Online (Sandbox Code Playgroud)\n数据库:
\nFuture _onCreate(Database db, int version) async {\n await db.execute('''\n CREATE TABLE $table (\n $columnId INTEGER PRIMARY KEY,\n $columnTime TEXT NOT NULL,\n $columnAmount INTEGER NOT NULL\n )\n ''');\n }\nRun Code Online (Sandbox Code Playgroud)\n我如何获得输出:
\nFuture<List> raw() async {\n Database db = await instance.database;\n var dbClient = await db;\n var result = await dbClient.rawQuery("SELECT * FROM $table");\n List<Map<String, dynamic>> r = result.toList();\n return r;\n }\nRun Code Online (Sandbox Code Playgroud)\n
在您的中创建一个工厂构造函数model
class Drink {
int id;
String time;
int amount;
Drink({this.id, this.time, this.amount});
factory Drink.fromJson(Map<String, dynamic> json) {
return Drink(
id: json['columnId'],
time: json['columnTime'],
amount: json['columnAmount'],
);
}
}
Run Code Online (Sandbox Code Playgroud)
稍后,您可以将获取的数据库数据映射为Drink这样
Future<List<Drink>> fetchDrinks() async {
Database db = await instance.database;
var dbClient = await db;
var result = await dbClient.rawQuery("SELECT * FROM $table");
List<Map<String, dynamic>> r = result.toList().map((data) => Drink.fromJson(data));
return r;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用awaitonfetchDrinks方法来获取对象列表Drink。
我没有测试过这个。
| 归档时间: |
|
| 查看次数: |
13200 次 |
| 最近记录: |