Я хочу вставить список элементов в таблицу sqlflite, но не могу понять, как это сделать.и как получить данные из таблицы.
Я уже инициализировал базу данных и создал таблицу.Получил данные из php-файла, связанного с моей базой данных.но когда хочется сохранить локально, я сталкиваюсь с проблемой.
class QuestionBankModel {
List<BCSSession> sessions;
QuestionBankModel({this.sessions});
QuestionBankModel.fromJson(Map<String, dynamic> json) {
if (json['sessions'] != null) {
sessions = new List<BCSSession>();
json['sessions'].forEach((v) {
sessions.add(new BCSSession.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.sessions != null) {
data['sessions'] = this.sessions.map((v) => v.toJson()).toList();
}
return data;
}
}
class BCSSession {
String id;
String itemTitle;
String progress;
BCSSession({this.id, this.itemTitle, this.progress});
BCSSession.fromJson(Map<String, dynamic> json) {
id = json['id'];
itemTitle = json['item_title'];
progress = json['progress'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['item_title'] = this.itemTitle;
data['progress'] = this.progress;
return data;
}
}
Вот так я получаю данные и пытаюсь вставить их в таблицу sqlite
void populateDb(Database database, int version) async {
//create table for "QuestionBank"
await database.execute("CREATE TABLE QuestionBank("
"id TEXT,"
"item_title TEXT,"
"progress TEXT"
")"
);
fetchSessions;
}
// not working
Future get fetchSessions async {
final response = await http
.get('http://samsunimas.000webhostapp.com/get_questionBank.php');
var jsonData = json.decode(response.body);
print(jsonData); // data is being fetched properly
QuestionBankModel questionBankModel =
QuestionBankModel.fromJson(jsonData);
List<BCSSession> listSessions = questionBankModel.sessions;
save(listSessions);
}
Future save( BCSSession listSessions) async {
var dbClient = await database;
listSessions = await dbClient.insert("QuestionBank",
listSessions.toJson());
return listSessions;
}
//how to fetch the data that are being inserted?
Future get fetchSessionsFromTable async {
//??
}