| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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<Database> get database async {
- if (_database != null) return _database!;
- _database = await _initDatabase();
- return _database!;
- }
- /// 初始化数据库
- Future<Database> _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<void> _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<void> _onUpgrade(Database db, int oldVersion, int newVersion) async {
- // 处理数据库升级逻辑
- if (oldVersion < newVersion) {
- // 执行升级操作
- }
- }
- /// 关闭数据库
- Future<void> close() async {
- final db = await database;
- await db.close();
- _database = null;
- }
- }
|