import 'package:item_tracker/database/item_table.dart'; import 'package:sqflite/sqflite.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; import 'item_category_table.dart'; class DatabaseHelper { // 数据库名称 static final _databaseName = "my_database.db"; // 数据库版本 static final _databaseVersion = 1; static final DatabaseHelper _instance = DatabaseHelper._internal(); factory DatabaseHelper() => _instance; static Database? _database; DatabaseHelper._internal(); Future get database async { if (_database != null) return _database!; return (await _initDatabase()); } // 初始化数据库 Future _initDatabase() async { // 获取App文档目录 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(createItemTable); await db.execute(createItemCategoryTable); await db.execute(insertDefaultCategory); } }