import 'package:sqflite/sqflite.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; class DatabaseHelper { static final _databaseName = "my_database.db"; static final _databaseVersion = 1; static final table = 'items'; static final columnId = '_id'; static final columnName = 'name'; static final columnContext = 'context'; static final DatabaseHelper _instance = DatabaseHelper._internal(); factory DatabaseHelper() => _instance; static Database? _database; DatabaseHelper._internal(); Future get database async { if (_database != null) return _database!; _database = await _initDatabase(); print('初始化成功!'); return _database!; } Future _initDatabase() async { final directory = await getApplicationDocumentsDirectory(); final path = join(directory.path, _databaseName); print('${path}'); return await openDatabase( path, version: _databaseVersion, onCreate: _onCreate, ); } Future _onCreate(Database db, int version) async { await db.execute(''' CREATE TABLE $table ( $columnId INTEGER PRIMARY KEY, $columnName TEXT NOT NULL, $columnContext ) '''); } }