本文整理自网络,侵删。
说明
Flutter原生是没有支持数据库操作的,它使用SQLlit插件来使应用具有使用数据库的能力。其实就是Flutter通过插件来与原生系统沟通,来进行数据库操作。
平台支持
- FLutter的SQLite插件支持IOS,安卓,和MacOS平台
- 如果要对Linux / Windows / DartVM进行支持请使用sqflite_common_ffi
- 不支持web平台
- 数据库操作在安卓或ios的后台执行
使用案例
notepad_sqflite 可以在iOS / Android / Windows / linux / Mac上运行的简单的记事本应用
简单使用
添加依赖
为了使用 SQLite 数据库,首先需要导入 sqflite 和 path 这两个 package
- sqflite 提供了丰富的类和方法,以便你能便捷实用 SQLite 数据库。
- path 提供了大量方法,以便你能正确的定义数据库在磁盘上的存储位置。
dependencies: sqflite: ^1.3.0 path:版本号
使用
导入 sqflite.dart
import 'dart:async'; import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart';
打开数据库
SQLite数据库就是文件系统中的文件。如果是相对路径,则该路径是getDatabasesPath()所获得的路径,该路径关联的是Android上的默认数据库目录和iOS上的documents目录。
var db = await openDatabase('my_db.db');
许多时候我们使用数据库时不需要手动关闭它,因为数据库会在程序关闭时被关闭。如果你想自动释放资源,可以使用如下方式:
await db.close();
执行原始的SQL查询
使用getDatabasesPath()获取数据库位置
使用 sqflite package 里的 getDatabasesPath 方法并配合 path package里的 join 方法定义数据库的路径。使用path包中的join方法是确保各个平台路径正确性的最佳实践。
var databasesPath = await getDatabasesPath(); String path = join(databasesPath, 'demo.db');
打开数据库
Database database = await openDatabase(path, version: 1, onCreate: (Database db, int version) async { // 创建数据库时创建表 await db.execute( 'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)'); });
增
在事务中向表中插入几条数据
await database.transaction((txn) async { int id1 = await txn.rawInsert( 'INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)'); print('inserted1: $id1'); int id2 = await txn.rawInsert( 'INSERT INTO Test(name, value, num) VALUES(?, ?, ?)', ['another name', 12345678, 3.1416]); print('inserted2: $id2'); });
删
删除表中的一条数据
count = await database .rawDelete('DELETE FROM Test WHERE name = ?', ['another name']);
改
修改表中的数据
int count = await database.rawUpdate('UPDATE Test SET name = ?, value = ? WHERE name = ?', ['updated name', '9876', 'some name']); print('updated: $count');
查
相关阅读 >>
asp.net中各种连接数据库的配置的方法及json数据转换
python使用Sqlite3第三方库读写Sqlite数据库的方法步骤
android studio 使用adb 命令传递文件到android 设备的方法
android studio如何获取Sqlite数据并显示到listview上
更多相关阅读请进入《Sqlite》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。