如何在Flutter应用程序中初始化数据库变量

sbtkgmzw  于 2023-06-30  发布在  Flutter
关注(0)|答案(3)|浏览(123)

我是Flutter的初学者,我想在我的Flutter App中使用SQflite包使用SQlite数据库,当我用这个语法static Database _database;声明_database变量时,我得到一个编译错误,说_database必须初始化,除了我不知道如何初始化它?

snz8szmq

snz8szmq1#

您可以像这样初始化数据库

// Set path of the database
var databasesPath = await getDatabasesPath();
String path = join(databasesPath, 'demo.db');

// Load the database (or create a new one, if it does not yet exist)
Database database = await openDatabase(path, version: 1,
    onCreate: (Database db, int version) async {
  // When creating the db, create the table
  await db.execute(
      'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');
});

当然,您需要根据所需的数据库结构修改SQL命令。初始化后,您可以执行所有数据库操作。但不要忘记在最后通过以下方式关闭连接

await database.close();

更多信息可以在sqflite包的documentation page上找到。这通常是开始研究的好地方。

wydwbb8l

wydwbb8l2#

在向数据库阅读和写入数据之前,请打开与数据库的连接。这涉及两个步骤:
使用sqflite包中的getDatabasePath()和path包中的join函数定义数据库文件的路径。使用sqflite中的openDatabase()函数打开数据库。
注意:为了使用关键字await,代码必须放在异步函数中。你应该把下面所有的表函数放在void main()async {}中。

// Avoid errors caused by flutter upgrade.
// Importing 'package:flutter/widgets.dart' is required.
WidgetsFlutterBinding.ensureInitialized();
// Open the database and store the reference.
final database = openDatabase(
  // Set the path to the database. Note: Using the `join` function from the
  // `path` package is best practice to ensure the path is correctly
  // constructed for each platform.
  join(await getDatabasesPath(), 'doggie_database.db'),
);

https://docs.flutter.dev/cookbook/persistence/sqlite

gwbalxhn

gwbalxhn3#

打开数据库
数据库是由文件系统中的路径表示的单个文件

// File path to a file in the current directory
String dbPath = 'sample.db';
DatabaseFactory dbFactory = databaseFactoryIo;

// We use the database factory to open the database
Database db = await dbFactory.openDatabase(dbPath);

db对象已准备就绪。
更多信息Here .

相关问题