import 'package:sqflite/sqflite.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; /// 应用数据库管理类 class AppDatabase { static final AppDatabase _instance = AppDatabase._internal(); static Database? _database; factory AppDatabase() { return _instance; } AppDatabase._internal(); /// 获取数据库实例 Future get database async { if (_database != null) return _database!; _database = await _initDatabase(); return _database!; } /// 初始化数据库 Future _initDatabase() async { final documentsDirectory = await getApplicationDocumentsDirectory(); final path = join(documentsDirectory.path, 'sino_med_cloud.db'); return await openDatabase( path, version: 1, onCreate: _onCreate, onUpgrade: _onUpgrade, ); } /// 创建数据库表 Future _onCreate(Database db, int version) async { // 可以在这里创建表 // 示例:用户表 // await db.execute(''' // CREATE TABLE users ( // id INTEGER PRIMARY KEY AUTOINCREMENT, // name TEXT NOT NULL, // email TEXT UNIQUE NOT NULL, // created_at INTEGER NOT NULL // ) // '''); } /// 升级数据库 Future _onUpgrade(Database db, int oldVersion, int newVersion) async { // 处理数据库升级逻辑 if (oldVersion < newVersion) { // 执行升级操作 } } /// 关闭数据库 Future close() async { final db = await database; await db.close(); _database = null; } }