MST

星途 面试题库

面试题:Flutter中SQLite数据持久化的基本操作

在Flutter应用中,如何使用SQLite创建一个新表并插入一条数据?请写出关键代码片段并简要说明步骤。
12.4万 热度难度
前端开发Flutter

知识考点

AI 面试

面试题答案

一键面试
  1. 引入依赖: 在pubspec.yaml文件中添加sqflite依赖:
dependencies:
  sqflite: ^2.2.0

然后运行flutter pub get

  1. 创建数据库和表
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

Future<void> createDatabase() async {
  final databasePath = await getDatabasesPath();
  final path = join(databasePath, 'example.db');

  final database = await openDatabase(
    path,
    version: 1,
    onCreate: (db, version) async {
      await db.execute('''
        CREATE TABLE users (
          id INTEGER PRIMARY KEY AUTOINCREMENT,
          name TEXT NOT NULL,
          age INTEGER
        )
      ''');
    },
  );
}

这段代码:

  • 首先获取应用的数据库路径。
  • 然后打开数据库,如果数据库不存在则创建,并定义了数据库版本为1。
  • onCreate回调中,使用execute方法执行SQL语句创建了一个名为users的表,表中有id(自增主键)、name(文本类型且不能为空)和age(整数类型)字段。
  1. 插入数据
Future<void> insertData() async {
  final databasePath = await getDatabasesPath();
  final path = join(databasePath, 'example.db');
  final database = await openDatabase(path);

  await database.insert(
    'users',
    {
      'name': 'John Doe',
      'age': 30,
    },
  );
}

这段代码:

  • 同样先获取数据库路径并打开数据库。
  • 然后使用insert方法向users表中插入一条数据,insert方法第一个参数是表名,第二个参数是一个Map,其中键是列名,值是要插入的数据。