Flutter 中的 CRUD 函数与 SQLite 服务器

问题描述 投票:0回答:1

我有一个 Flutter 应用程序,我想与 SQLite 数据库进行交互。我已经构建了要在数据库中与之交互的表并拥有其详细信息。

class SafeTable extends GenericTable {
  @override
  String tableName = "safe";
  @override
  List<List<String>> fields = [
    ['id', TableHelper.integerPrimaryKey],
    ['timestamp', TableHelper.varchar255],
    ['user_id', TableHelper.varchar255],
    ['situation', TableHelper.textDefaultEmpty],
    ['is_safe', TableHelper.booleanNotNullDefaultZero]
  ];
}

class EmergenciesTable extends GenericTable {
  @override
  String tableName = "emergencies";
  @override
  List<List<String>> fields = [
    ['id', TableHelper.integerPrimaryKey],
    ['timestamp', TableHelper.varchar255],
    ['notice', TableHelper.varchar255],
    ['instructions', TableHelper.textDefaultEmpty],
    ['is_emergency', TableHelper.booleanNotNullDefaultZero]
  ];
}

这就是表的结构方式,我想执行 CRUD 函数以从

emergencies
表中读取数据,并在
safe
表中创建和更新。我查看了 CRUD 的图例,但它们适用于不同结构的数据库。我需要使用这个结构,所以我正在寻找可以使用这个结构的 CRUD。

flutter sqlite dart crud
1个回答
0
投票

如果结构与项目中的数据流没有严格关联,我建议更改结构

  static Future<void> createTables(sql.Database database) async {
    database.execute('''
         CREATE TABLE $tableName (
         "$columnId" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
        "$columnData1" TEXT NOT NULL,
        "$columnData2" TEXT NOT NULL,
        "$columnData3" TEXT NOT NULL
         )
        ''');
    debugPrint("success!!! DB Created");
  }

  static Future<sql.Database> db() async {
    print("Measurements Database path: ${await sql.getDatabasesPath()}");
    return sql.openDatabase(
      '$tableName',
      version: _dbVersion,
      onCreate: (sql.Database database, int version) async {
        print("------- creating a table -------");
        await createTables(database);
      },
    );
  }
© www.soinside.com 2019 - 2024. All rights reserved.