繁体   English   中英

在颤振中同时读取和写入数据到数据库

[英]read and write data to Database simultaneously in flutter

这个问题与 DB 关系不大,而与一般编程有关。

所以我的颤振应用程序中有两个模型:

  1. 单一提醒模型
  2. 提醒模型

现在的事情是ReminderModel包含一个List<SingleReminderModel> ReminderModelSingleReminderModel中的每一项SingleReminderModel包含它们唯一的int id。

现在我不能重复 ID,因为新 ID 只会覆盖与旧 ID 关联的数据。 所以我创建了一个名为IdModel的新模型。 在我的数据库中,我保存了IdModel列表。

所以我需要的是同时将数据保存在数据库中并检索它,以便我可以检查保存的值。

接下来我有两个方法需要调用addReminderToDb()scheduleAlarm() ,我猜这些方法的名称是不言自明的。

Store.instance.setSingleId(id); //saves data to database
Store.instance.getIdData(); // retrieves the List<int>

最后这是我的onSave()方法:

  void onSave(
    int? _day,
    DateTime? _workStartTime,
    DateTime? _workEndTime,
    Duration? _frequency,
    Duration? _breakPeriod,
  ) {
    String? _dayName = TimeUtil().returnDayName(_day!);
    DateTime? workStartTime = TimeUtil().getNextDate(_workStartTime, _day);
    DateTime? workEndTime = TimeUtil().getNextDate(_workEndTime, _day);
    Duration? workHour = TimeUtil().returnWorkHour(workStartTime, workEndTime);
    List<DateTime> listOfFrequency = TimeUtil().returnListAlarmTime(
      start: workStartTime,
      end: workEndTime,
      frequency: _frequency!,
      breakPeriod: _breakPeriod!,
    );
    List<SingleReminderModel> singleReminders = [];
    for (int i = 0; i < listOfFrequency.length; i++) {
      SingleReminderModel singleReminderModel = SingleReminderModel(
        singleReminderId: i,
        alarmStartAt: listOfFrequency[i],
      );
      singleReminders.add(singleReminderModel);
    }
    ReminderModel? reminder = ReminderModel(
      id: 3, // hardcoded id
      dayName: _dayName,
      workStartTime: _workStartTime,
      workEndTime: _workEndTime,
      workHour: workHour,
      singleReminderModel: singleReminders,
      frequency: _frequency,
      breakPeriod: _breakPeriod,
    );
    scheduleAlarm(singleReminders);
    addReminderToDB(reminder);
  }

重新表述我的问题:

我需要在 IdModel 中保存每个 SingleReminderModel 和 ReminderModel 的 id,同时调用addReminderToDbscheduleAlarm()

ID 生成应由您正在使用的数据库提供程序处理并从同一管道中检索回来,以便它永远不会被复制。

所以理想情况下你的 onSave 应该返回由数据库提供者生成的实际 id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM