【发布时间】:2021-09-14 18:50:02
【问题描述】:
我第一次使用sqflite 创建数据库。我只是对创建 dbHelper 感到困惑。所有实现几乎都以相同的方式。令人困惑的问题是_db 在每次打开应用程序的开头它将始终为空,这意味着这总是会创建一个新表。 _db 什么时候不为空?
代码是:
class DatabaseHelper {
DatabaseHelper._();
static final DatabaseHelper _instance = DatabaseHelper._();
factory DatabaseHelper() => _instance;
static Database? _db;
Future<Database?> createDB() async {
if (_db != null) return _db;
String path = await getDatabasesPath();
_db = await openDatabase(
join(path, "todo.db"),version: 1,
onCreate: (Database database, int version)async {
await database.execute('');
},
);
return _db;
}
}
【问题讨论】: