文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【Flutter】Flutter 中 sqflite 的基本使用

2023-09-18 19:33

关注

文章目录

一、前言

在开发 Flutter 应用时,我们经常需要使用到本地数据库来存储一些数据。sqflite 是一个为 Flutter 提供的 SQLite 插件,它支持 iOS、Android 和 MacOS。在这篇文章中,我们将简要介绍如何在 Flutter 中使用 sqflite。

如果你想深入学习 Flutter,掌握更多的技巧和最佳实践,我有一个好消息要告诉你:我们有一个全面的 Flutter专栏->Flutter Developer 101 入门小册 等待着你。在那里,你将获得完整的、系统的 Flutter 学习资料,包括详细的代码示例和深入的概念解析。更重要的是,我们的专栏正在不断更新和完善,而价格也会随着内容的丰富而逐渐上调。所以,现在加入,你将以最优惠的价格获得所有的内容。现在,让我们开始今天的学习吧!

二、什么是 sqflite

sqflite 是一个 Flutter 插件,用于在 Flutter 应用中使用 SQLite 数据库。SQLite 是一种轻量级的数据库,它的设计目标是嵌入式的,而且有着非常小的内存占用。sqflite 支持事务和批处理,可以在 iOS 和 Android 上在后台线程中执行数据库操作。

三、如何在 Flutter 中安装 sqflite

在你的 Flutter 项目中添加 sqflite 的依赖非常简单。只需要在你的 pubspec.yaml 文件中的 dependencies 下添加 sqflite,然后运行 flutter packages get 命令即可。

dependencies:  sqflite:

四、如何在 Flutter 中使用 sqflite

1. 打开数据库

在 sqflite 中,一个 SQLite 数据库就是一个文件,通过一个路径来标识。如果这个路径是相对路径,那么它就是相对于 getDatabasesPath() 得到的路径,这个路径是 Android 的默认数据库目录,iOS/MacOS 的文档目录。

var db = await openDatabase('my_db.db');

2. 创建表

我们可以在打开数据库后,使用 execute 方法来执行 SQL 语句,创建数据表。

await db.execute(  'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');

3. 插入数据

我们可以使用 rawInsert 方法来插入数据。

int id = await db.rawInsert(  'INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)');

4. 查询数据

我们可以使用 rawQuery 方法来查询数据。

List<Map> list = await db.rawQuery('SELECT * FROM Test');

5. 更新数据

我们可以使用 rawUpdate 方法来更新数据。

int count = await db.rawUpdate(  'UPDATE Test SET name = ?, value = ? WHERE name = ?',  ['updated name', '9876', 'some name']);

6. 删除数据

我们可以使用 rawDelete 方法来删除数据。

int count = await db.rawDelete('DELETE FROM Test WHERE name = ?', ['another name']);

五、一个简单的 sqflite 使用示例

下面是一个简单的 sqflite 使用示例,包括了打开数据库、创建表、插入数据、查询数据、更新数据和删除数据的操作。

import 'package:sqflite/sqflite.dart';void main() async{  var db = await openDatabase('my_db.db');  await db.execute(    'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)'  );  int id = await db.rawInsert(    'INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)'  );  List<Map> list = await db.rawQuery('SELECT * FROM Test');  int count = await db.rawUpdate(    'UPDATE Test SET name = ?, value = ? WHERE name = ?',    ['updated name', '9876', 'some name']  );  count = await db.rawDelete('DELETE FROM Test WHERE name = ?', ['another name']);  await db.close();}

这个示例中,我们首先打开了一个名为 my_db.db 的数据库,然后在这个数据库中创建了一个名为 Test 的表。接着,我们向这个表中插入了一条数据,然后查询了这个表中的所有数据。然后,我们更新了一条数据,最后删除了一条数据。在所有操作完成后,我们关闭了数据库。

六、总结

在这篇文章中,我们简要介绍了如何在 Flutter 中使用 sqflite。sqflite 是一个非常强大的插件,它为我们在 Flutter 中使用 SQLite 数据库提供了很大的便利。希望这篇文章能帮助你快速上手 sqflite。在下一篇文章中,我们将深入探讨 sqflite 的使用,包括事务处理、批处理操作等高级功能。

如果你对 Flutter 感兴趣,想要更深入地学习,那么我要推荐你一个很棒的资源:我们的 Flutter专栏->Flutter Developer 101 入门小册。在那里,你将获得完整的、系统的 Flutter 学习资料,包括详细的代码示例和深入的概念解析。比如,你知道如何使用 Flutter 构建一个完整的应用吗?在我们的专栏中,你将找到答案。更重要的是,我们的专栏正在不断更新和完善,而价格也会随着内容的丰富而逐渐上调。所以,现在加入,你将以最优惠的价格获得所有的内容。让我们一起在 Flutter 的世界中继续探索吧!如果你想了解更多,可以先阅读我们的 一站式解决你的需求,Flutter Developer 101 入门小册 专栏指引

来源地址:https://blog.csdn.net/diandianxiyu/article/details/131277973

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯