database_helper.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. action_type INTEGER NOT NULL,
  30. description TEXT NOT NULL,
  31. cover TEXT NOT NULL,
  32. sort INTEGER NOT NULL,
  33. status INTEGER NOT NULL,
  34. difficulty INTEGER NOT NULL,
  35. remark TEXT NOT NULL,
  36. start_date INTEGER,
  37. end_date INTEGER,
  38. finish_date INTEGER,
  39. plan_finish_date INTEGER,
  40. parent_id INTEGER NOT NULL
  41. );
  42. ''');
  43. }
  44. }