返回

用SQFlite访问本地数据库

Android

简介

在Flutter中,我们可以使用SQFlite插件来访问本地数据库。SQFlite是一个轻量级、高性能、跨平台的数据库库,它支持SQLite数据库引擎,在Flutter中使用它可以很方便地进行数据存储和管理。

添加依赖

在使用SQFlite之前,我们需要先在pubspec.yaml文件中添加依赖:

dependencies:
  sqflite: ^2.0.0+4

然后运行flutter pub get命令来安装依赖。

创建数据库

创建数据库的代码如下:

import 'package:sqflite/sqflite.dart';

Future<Database> createDatabase() async {
  // 打开数据库或创建新数据库
  return await openDatabase(
    // 数据库路径
    'my_database.db',
    // 数据库版本
    version: 1,
    // 创建数据库
    onCreate: (db, version) async {
      // 创建表
      await db.execute(
          'CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT, description TEXT, completed INTEGER)');
    },
  );
}

创建表

在创建了数据库之后,我们可以创建表。创建表的代码如下:

import 'package:sqflite/sqflite.dart';

Future<void> createTable(Database db) async {
  // 创建表
  await db.execute(
      'CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT, description TEXT, completed INTEGER)');
}

表的增删改查

在创建了表之后,我们可以对表进行增删改查操作。

插入数据

插入数据的代码如下:

import 'package:sqflite/sqflite.dart';

Future<void> insertData(Database db, String name, String description) async {
  // 插入数据
  await db.rawInsert(
      'INSERT INTO tasks (name, description, completed) VALUES (?, ?, 0)',
      [name, description]);
}

查询数据

查询数据的代码如下:

import 'package:sqflite/sqflite.dart';

Future<List<Map<String, dynamic>>> queryData(Database db) async {
  // 查询数据
  return await db.rawQuery('SELECT * FROM tasks');
}

更新数据

更新数据的代码如下:

import 'package:sqflite/sqflite.dart';

Future<void> updateData(Database db, int id, String name, String description) async {
  // 更新数据
  await db.rawUpdate(
      'UPDATE tasks SET name = ?, description = ? WHERE id = ?', [name, description, id]);
}

删除数据

删除数据的代码如下:

import 'package:sqflite/sqflite.dart';

Future<void> deleteData(Database db, int id) async {
  // 删除数据
  await db.rawDelete('DELETE FROM tasks WHERE id = ?', [id]);
}

总结

本文介绍了如何使用SQFlite在Flutter中访问本地数据库,包括数据库的创建、表的增删改查等基本操作。希望本文能够帮助开发者掌握Flutter数据库编程的基本技能。