在开发 Flutter 应用时,我们经常需要使用到本地数据库来存储一些数据。sqflite 是一个为 Flutter 提供的 SQLite 插件,它支持 iOS、Android 和 MacOS。在这篇文章中,我们将简要介绍如何在 Flutter 中使用 sqflite。
如果你想深入学习 Flutter,掌握更多的技巧和最佳实践,我有一个好消息要告诉你:我们有一个全面的 Flutter专栏->Flutter Developer 101 入门小册 等待着你。在那里,你将获得完整的、系统的 Flutter 学习资料,包括详细的代码示例和深入的概念解析。更重要的是,我们的专栏正在不断更新和完善,而价格也会随着内容的丰富而逐渐上调。所以,现在加入,你将以最优惠的价格获得所有的内容。现在,让我们开始今天的学习吧!
sqflite 是一个 Flutter 插件,用于在 Flutter 应用中使用 SQLite 数据库。SQLite 是一种轻量级的数据库,它的设计目标是嵌入式的,而且有着非常小的内存占用。sqflite 支持事务和批处理,可以在 iOS 和 Android 上在后台线程中执行数据库操作。
在你的 Flutter 项目中添加 sqflite 的依赖非常简单。只需要在你的 pubspec.yaml
文件中的 dependencies
下添加 sqflite
,然后运行 flutter packages get
命令即可。
dependencies:
sqflite:
在 sqflite 中,一个 SQLite 数据库就是一个文件,通过一个路径来标识。如果这个路径是相对路径,那么它就是相对于 getDatabasesPath()
得到的路径,这个路径是 Android 的默认数据库目录,iOS/MacOS 的文档目录。
var db = await openDatabase('my_db.db');
我们可以在打开数据库后,使用 execute
方法来执行 SQL 语句,创建数据表。
await db.execute(
'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)'
);
我们可以使用 rawInsert
方法来插入数据。
int id = await db.rawInsert(
'INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)'
);
我们可以使用 rawQuery
方法来查询数据。
List<Map> list = await db.rawQuery('SELECT * FROM Test');
我们可以使用 rawUpdate
方法来更新数据。
int count = await db.rawUpdate(
'UPDATE Test SET name = ?, value = ? WHERE name = ?',
['updated name', '9876', 'some name']
);
我们可以使用 rawDelete
方法来删除数据。
int count = await db.rawDelete('DELETE FROM Test WHERE name = ?', ['another name']);
下面是一个简单的 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 入门小册 专栏指引。