【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 入门小册 专栏指引

猜你喜欢

转载自blog.csdn.net/diandianxiyu/article/details/131277973