前言
sqflite是一个轻量的关系型数据库,以表的形式将较为复杂的数据存储到.db文件中(数据库),同时支持安卓和IOS,简单数据可直接使用 shared_preferences
1. 准备工作
1.1 添加依赖:
在pubspec.yaml文件下添加
path_provider是用来处理路径相关的操作
dependencies:
sqflite: ^1.3.0+2
path_provider: ^1.6.9
1.2 安装
如果保存了有自动执行则最好,如果没有那么在终端运行flutter packages get命令
1.3 导入
import 'package:sqflite/sqflite.dart';
import 'package:path_provider/path_provider.dart';
1.4 注意
// SQLite支持的数据类型 不支持bool和DateTime
// SQL类型 ==== Dart类型
// integer ==== int
// real ==== num
// text ==== String
// blob ==== Uint8List
2. 使用流程
2.1 创建数据库
// 数据库文件路径:可以根据自己的需求自己定 这里使用的是外部存储可见的目录
// 可以将路径打印出来 在手机上找到它
String databasePath=(await getExternalStorageDirectory()).path+"/demo.db";
// 打开数据库 (若想数据库只能读取则使用openReadOnlyDatabase())
// 1 若数据库不存在 则创建数据库
// 2 若数据库存在 version大于当前数据库version 则升级
// 3 若数据库存在 version小于当前数据库version 则降级
// 4 若数据库存在 version等于当前数据库version 则不变
Database database=await openDatabase(databasePath,version: 2,
readOnly: false, // 是否只读
singleInstance: true, // 是否单例
// 第一个被调用的可选回调 配置数据库使用SQL语句配置
onConfigure: (Database database)async{
await database.execute("PRAGMA foreign_keys = ON");
print("配置数据库");
},
// 创建数据库回调
onCreate: (Database database,int version)async{