升级DBProvider Flutter

时间:2019-07-16 11:10:31

标签: sqlite flutter dart flutter-dependencies

我是第一次接触数据库。我有一个带有以下形式的database.dart数据文件夹。这对于一个表并具有一些CRUD函数(例如newNote或getNotes)很好,但是当您有多个表和多个CRUD函数时会发生什么呢?您是否应该将所有文件都转储到此database.dart文件中,使其变得混乱?有什么更好的组织替代方案?

class DBProvider {
    DBProvider._();

    static final DBProvider db = DBProvider._();
    Database _database;

    Future<Database> get database async {
        if (_database != null) {
            return _database;
        }

        _database = await initDB();
        return _database;
    }

    initDB() async {
        Directory documentsDir = await getApplicationDocumentsDirectory();
        String path = join(documentsDir.path, 'app.db');

        return await openDatabase(path, version: 1, onOpen: (db) async {
        }, onCreate: (Database db, int version) async {
            // Create the note table
            await db.execute('''
                CREATE TABLE note(
                    id INTEGER PRIMARY KEY,
                    contents TEXT DEFAULT ''
                )
            ''');
        });
    }

newNote(Note note) async {
    final db = await database;
    var res = await db.insert('note', note.toJson());

    return res;
}
}

0 个答案:

没有答案