当前位置: 首页 > 知识库问答 >
问题:

没有用Flutter的SQFlite关闭数据库?

百里骏
2023-03-14

该API主要受Android ContentProvider的启发,其中典型的SQLite实现意味着在第一个请求时打开数据库一次,并保持其打开状态。

就我个人而言,我的Flutter应用程序中有一个全局参考数据库,以避免锁问题。如果多次调用,打开数据库应该是安全的。

如果引用丢失(并且数据库尚未关闭),只在小部件中保留引用可能会导致热重新加载问题。

await database.close();

共有1个答案

越朗
2023-03-14

我没有关闭数据库,也没有遇到任何问题,但是最好的做法是关闭所有不需要的数据库连接。

您可以通过重写oninitstate()来初始化数据库,在这里可以调用创建数据库的函数;通过重写ondispose()来初始化数据库,在这里可以调用DB.close()

或者,您可以为每个查询打开/关闭连接,但这会增加额外的处理开销,而且没有必要这样做,尤其是在频繁进行DB调用的情况下。

 类似资料:
  • [错误:flutter/lib/ui/ui_dart_state.cc(157)]未处理的异常:nosuchmethoderror:在null上调用了方法“to map”。E/Flutter(2893):接收器:null E/Flutter(2893):尝试调用:toMap() 我已经创建了数据库和insert操作,但是当我调用insert操作时,它给出了一个错误,即InsertNote方法是在N

  • 我们有一个完全由Flutter构建的应用程序。当我们将应用程序升级发送到谷歌商店时,在Android设备中更新apk时sqflite数据库数据不会丢失。但在iOS设备中,用户将应用程序更新到新版本后,所有数据库数据都丢失了。 谢谢

  • 问题内容: 我试图在Flutter中将列表插入到sql数据库中,但是我不知道该怎么办,有人可以帮助我吗? 当我初始化mi数据库时,我有这个: 我有这个要插入数据: 但是当y尝试插入这样的值时: 我收到这样的错误: 发生异常。 SqfliteDatabaseException(DatabaseException(java.lang.String无法转换为java.lang.Integer)sql’I

  • 我已经阅读了许多关于如何在Flutter中实现Sqflite的教程和示例。每一个其他示例都只使用一个模型或数据库表。如这些教程中所定义的: https://pub.dartlang.org/packages/sqflite https://www.developerlibs.com/2018/07/flutter-sqlite-database-example.html

  • 本文向大家介绍Flutter持久化存储之数据库存储(sqflite)详解,包括了Flutter持久化存储之数据库存储(sqflite)详解的使用技巧和注意事项,需要的朋友参考一下 前言 数据库存储是我们常用的存储方式之一,对大批量数据有增、删、改、查操作需求时,我们就会想到使用数据库,Flutter中提供了一个sqflite插件供我们用于大量数据执行CRUD操作。本篇我们就来一起学习sqflite

  • 我有以下代码