【Flutter】Flutter 中 sqflite 的基本使用
文章目录
一、前言
在开发 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