flutter - 制作一个简单的单实例类作为数据库助手

标签 flutter dart

我正在尝试使用 floor在 flutter 中使用简单数据库的库

这个库的简单实现是:

Future<void> main() async {
  final database = await $FloorFlutterDatabase
      .databaseBuilder('flutter_database.db')
      .build();
  final dao = database.taskDao;

  runApp(FloorApp(dao));
}

在我的实现代码中,我无法从数据库访问 taskDao。例如:
var dao = db.taskDao 

我的 DatabaseHelper类(class):
class DatabaseHelper{
  static final _databaseName = "flutter_database.db";

  DatabaseHelper._privateConstructor();
  static final DatabaseHelper instance = DatabaseHelper._privateConstructor();

  static $FloorAppDatabase _database;
  static var dao;
  Future<$FloorAppDatabase> get database async{
    if(_database !=null){
      return _database;
    }
    _database = await _initDatabase();
    return _database;
  }

  _initDatabase() async{
    return await $FloorAppDatabase
        .databaseBuilder(_databaseName)
        .build();
  }
}
main使用它的类:
void main() async {
  $FloorAppDatabase db = await DatabaseHelper.instance.database;
  //var dao = db.
}

最佳答案

我建议您检查 get_it 库...以在全局范围内获取懒惰的单例。
还尝试从连接到使用 Future.delayed 模拟它们的数据库调试 future ,看看它是否工作正常......(没有库)

关于flutter - 制作一个简单的单实例类作为数据库助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56497896/

相关文章:

flutter - 在 flutter firebase 中,我收到错误 : [cloud_firestore/permission-denied] The caller does not have permission to execute the specified operation

forms - 使用 appBar 图标打开表单

flutter - 如何在Flutter的末尾显示更多文本来代替Text Overflow.ellipsis?

flutter - 服务器使用抖动

Flutter - 使用 Provider 包、FireStore 身份验证查找停用的小部件的祖先是不安全的

dart - Flutter 按钮应该加载新的 webview url

android - 运行 Flutter App 时出现 java.lang.NullPointerException

image - 如何从 Assets 中为 CircleAvatar 提供图像

Flutter:按下按钮时只能在初始化程序中访问静态成员

dart - 使用 dart 或/和 AngularDart 实现高质量且完整的 PWA(渐进式 Web 应用程序)