Flutter 如何在颤振中使用预加载sqlite数据库
我是颤振开发方面的新手 我想在颤振应用程序中使用现有数据库Flutter 如何在颤振中使用预加载sqlite数据库,flutter,dart,Flutter,Dart,我是颤振开发方面的新手 我想在颤振应用程序中使用现有数据库 这是怎么可能的?关于你的颤振应用程序,有一个很棒的指南 我发现这对你的场景很有用 您可以访问上述链接,也可以查看下面的分步过程,以使用您的Flatter应用程序中的现有数据库 该指南解释了在Flatter应用程序中捆绑和打开预先存在的SQLite数据库所需的步骤 首先,您必须编辑您的pubspec.yaml配置,以引用预先存在的SQLite数据库文件,以便在构建应用程序时将其捆绑到应用程序中。在下面的示例中,我们将假设该文件存在于您的F
这是怎么可能的?关于你的颤振应用程序,有一个很棒的指南 我发现这对你的场景很有用 您可以访问上述链接,也可以查看下面的分步过程,以使用您的Flatter应用程序中的现有数据库 该指南解释了在Flatter应用程序中捆绑和打开预先存在的SQLite数据库所需的步骤 首先,您必须编辑您的
pubspec.yaml
配置,以引用预先存在的SQLite数据库文件,以便在构建应用程序时将其捆绑到应用程序中。在下面的示例中,我们将假设该文件存在于您的Flatter app目录下的assets/example.db
:
# The following section is specific to Flutter.
flutter:
# The following line ensures that the Material Icons font is
# included with your application so that you can use the icons in
# the material Icons class.
uses-material-design: true
# To add assets to your application, add an assets section, like this:
assets:
- assets/example.db
接下来,在应用程序初始化中,您需要将捆绑的文件数据复制到一个可用的位置,因为捆绑的资源本身不能在Android上直接作为文件打开
sqflite.getDatabasesPath()函数将返回用于此操作的目录。这通常类似于Android上的/data/data/org.example.myapp/databases/
。有了它,您可以从捆绑资产加载字节数据,并创建应用程序的可写数据库文件,在这里命名为app.db
:
// Construct the path to the app's writable database file:
var dbDir = await getDatabasesPath();
var dbPath = join(dbDir, "app.db");
// Delete any existing database:
await deleteDatabase(dbPath);
// Create the writable database file from the bundled demo database file:
ByteData data = await rootBundle.load("assets/example.db");
List<int> bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
await File(dbPath).writeAsBytes(bytes);
var db = await openDatabase(dbPath);