未分类 · 2023年1月1日 0

Flutter 数据库插件sqflite的使用和添加windows linux支持

内容纲要
dependencies:
  path: ^1.8.2
  path_provider: ^2.0.11
  sqflite_common_ffi: ^2.2.0+1
  sqflite: ^2.2.2
  sqlite3_flutter_libs: ^0.5.12
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
import 'package:path_provider/path_provider.dart';

initDB() async {
  if (kIsWeb) return;
  String dbPath = 'demo.db';
  if (Platform.isWindows || Platform.isLinux) {
    sqfliteFfiInit();
    databaseFactory = databaseFactoryFfi;
    var appSupportDir = await getApplicationSupportDirectory();
    var dir = join(appSupportDir.path, "databases");
    dbPath = join(dir, dbPath);
  }
  Database db = await databaseFactory.openDatabase(dbPath);

  // await db.execute('''
  // CREATE TABLE IF NOT EXISTS  Product(
  //      id INTEGER PRIMARY KEY,
  //      title TEXT
  //  )  ;
  //  ''');
  // await db.insert('Product', <String, Object?>{'title': 'Product 1'});
  // await db.insert('Product', <String, Object?>{'title': 'Product 1'});
  //
  // var result = await db.query('Product');
  // print(result);
  // // prints [{id: 1, title: Product 1}, {id: 2, title: Product 1}]
  // await db.close();
}