sqlite - 如何将列表对象存储到Sqlite
问题描述
我想将一个项目列表插入到 sqlflite TABLE 中,但不知道该怎么做。以及如何从表中获取数据。我已经初始化了数据库并创建了表。从与我的数据库链接的 PHP 文件中获取数据。但是当想在本地保存时,我遇到了问题。
“未处理的异常:DatabaseException(java.lang.String 无法转换为 java.lang.Integer)sql 'INSERT INTO orders(name, partner_id)VALUES (?, ?)' args [RMA/04925, [10304, SMEG CARE] ]}"
这是我的模型:
class Order {
String name;
List<dynamic> partnerId;
Order({this.name, this.partnerId});
Order.fromJson(Map<String, dynamic> json) {
name = json['name'];
partnerId = json['partner_id'].cast<dynamic>();
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['partner_id'] = this.partnerId;
return data;
}
}
这是我从服务器获取 JSON 数据的 HTTP 方法:
static getOrders() async {
Response response;
Dio dio = Dio();
try {
final cookie = await LocalStorage.get(Config.COOKIE_KEY);
Map<String, dynamic> headers = {
'Cookie': cookie,
'content-type': 'application/json;charset=UTF-8'
};
Map<String, dynamic> queryParameters = {
'limit': 20,
};
response = await dio.get(Address.getOrders,
queryParameters: queryParameters, options: Options(headers: headers));
List responseJson = json.decode(response.data);
return responseJson.map((m) => Order.fromJson(m)).toList();
} catch (e) {
return print(e);
}
}
}
这是我调用方法来获取 JSON 并保存到 SQLite 的地方:
@override
void initState() {
UserDio.getOrders().then((val) {
dbHelper.truncateTable();
insert(val);
});
insert(List<Order> orders) {
orders.forEach((item) {
dbHelper.save(item);
});
}
这是我将 JSON 保存到 SQLite 的 Save 方法
Future<Order> save(Order order) async {
var dbClient = await db;
await dbClient.insert(TABLE, order.toJson());
return order;
}
这是我的表结构
_onCreate(Database db, int version) async {
await db
.execute("CREATE TABLE $TABLE (name TEXT PRIMARY KEY, partnerId TEXT)");
}
解决方案
推荐阅读
- java - 如何实现部分 SSL 握手来测试任意密码套件?
- parameters - pyodbc - 使用参数时无法访问命名列
- firebase - 购物车总价格未更新
- python - Jax - sigmoid 的 autograd 总是返回 nan
- android - 没有锁的Android服务认为没用?
- smb - 使用脚本或 robocopy 在远程共享上访问 VSS“以前的版本”
- python - 将 PIL.GifImagePlugin.GifImageFile 转换为 3 维 numpy 数组
- snowflake-cloud-data-platform - Talend 作业在来自 tSnowflakeInput 组件的简单 SELECT 上引发错误
- pycharm - 在使用 pytest 集成的 PyCharm 中,可以通过测试抑制 print() 输出吗?
- php - PHP MySQL循环遍历行并在日期更改时打印日期