database_helper.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import 'package:sqflite/sqflite.dart';
  2. import 'package:path/path.dart';
  3. class DatabaseHelper {
  4. static const _databaseName = 'jay_world_app.db';
  5. static const _databaseVersion = 1;
  6. static const chllangetTable = 'challenges';
  7. static const columnId = 'id';
  8. static const columnTitle = 'title';
  9. // 其他字段...
  10. static Database? _database;
  11. Future<Database> get database async {
  12. if (_database != null) return _database!;
  13. _database = await _initDatabase();
  14. return _database!;
  15. }
  16. Future<Database> _initDatabase() async {
  17. final path = join(await getDatabasesPath(), _databaseName);
  18. return await openDatabase(
  19. path,
  20. version: _databaseVersion,
  21. onCreate: _onCreate,
  22. );
  23. }
  24. Future<void> _onCreate(Database db, int version) async {
  25. await db.execute('''
  26. CREATE TABLE $chllangetTable (
  27. $columnId INTEGER PRIMARY KEY AUTOINCREMENT,
  28. $columnTitle TEXT NOT NULL,
  29. description TEXT NOT NULL,
  30. startDate INTEGER NOT NULL,
  31. endDate INTEGER NOT NULL,
  32. participants INTEGER DEFAULT 0,
  33. completed INTEGER DEFAULT 0,
  34. difficulty TEXT NOT NULL
  35. );
  36. ''');
  37. }
  38. }