如何通过应用程序提供骨骼sqflite数据库

时间:2020-05-22 02:18:23

标签: android flutter sqflite

我已经成功开发了一个带有flf和sqflite的简单费用跟踪应用程序。

由于这也是一个会计应用程序,因此我想提供一个基本的数据库结构,然后用户可以根据他的要求对其进行编辑。

这实际上意味着,我与Create数据库操作一起运行了一次Insert操作。

我已经有以下代码来创建数据库。关于在何处包括插入命令以创建虚拟数据库的任何建议?

factory DatabaseProvider() {
    if (_databaseProvider == null) {
      _databaseProvider = DatabaseProvider._createInstance();
    }
    return _databaseProvider;
  }

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

  Future<Database> initializeDatabase() async {
    Directory directory = await getApplicationDocumentsDirectory();
    String path = directory.path + 'accounts.db';

    var acctsDatabase = await openDatabase(path,
        version: 1, onCreate: _createDb, onUpgrade: _onUpgrade);
    return acctsDatabase;
  }

  void _onUpgrade(Database db, int oldVersion, int newVersion) async {
    if (oldVersion < newVersion) {

    }
  }

  void _createDb(Database db, int newVersion) async {
    await db.execute('CREATE TABLE $accTable('
        '$colId INTEGER PRIMARY KEY AUTOINCREMENT, '
        '$colCategory TEXT, '
        '$colMaincat TEXT, '
        '$colSubcat TEXT, '
        '$colaccDetail TEXT, '
        '$colCreated TEXT, '
        '$coltransnumb INTEGER, '
        '$colopbalance INTEGER, '
        '$colopenbalance INTEGER)');

    await db.execute('CREATE TABLE $transTable('
        '$colTransId INTEGER PRIMARY KEY AUTOINCREMENT,'
        '$colTransSubId TEXT, '
        '$colAccId INTEGER, '
        '$colTCategory TEXT, '
        '$colTMaincat TEXT, '
        '$colTSubcat TEXT, '
        '$colTDetail TEXT, '
        '$colTranAmount INTEGER,'
        '$colTranDate TEXT, '
        '$colEntryDate TEXT)');
  }

0 个答案:

没有答案