Я хочу вставить список элементов в таблицу sqlflite, но не могу понять, как это сделать. и как получить данные из таблицы. Я уже инициализировал базу данных и создал таблицу. Получил данные из файла 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;
}
}
Это мой метод HTTP для JSONданные с сервера:
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);
});
}
И это мой метод Save для сохраненияJSON для SQLite
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)");
}