Flutter-数据持久化(shared_preferences、sqflite)

1|0shared_preferences

示例

static Future<void> setToken(String token) async { SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setString(TOKEN, token); }
static Future<String?> getToken() async { SharedPreferences prefs = await SharedPreferences.getInstance(); if (await prefs.containsKey(TOKEN)) { var json = await prefs.getString(TOKEN); return json; } else { return null; } }
String? toeken = await DTWRoleManager.getToken();

相关方法

SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString(key, value) prefs.setBool(key, value) prefs.setDouble(key, value) prefs.setInt(key, value) prefs.setStringList(key, value) prefs.remove(key) prefs.clear()

2|0sqflite

打开数据库(可同时新建或更新表)

DTWDBHandle.internal(); //数据库句柄 static Database? _database; Future<Database?> get database async { if (_database == null) { var databasesPath = await getDatabasesPath(); String path = join(databasesPath, DB_NAME_DTW); _database = await openDatabase(path, version: DB_VERSION, onCreate: _onCreate); } print(_database!.path.toString()); return _database; } //创建表 void _onCreate(Database db, int version) async { final sql = ''' create table if not exists $DB_TABLE_SET ( account text, pid text '''; var batch = db.batch(); batch.execute(sql); await batch.commit(); } //打开 Future<Database?> open() async { return await database; }

插入

Database? db = await DTWDBHandle.internal().open(); await db!.insert(DB_TABLE_SET, setData.toJson()); await db.batch().commit();

修改

Database? db = await DTWDBHandle.internal().open(); String sqlWhere = ''' account='${setData.account}' and pid='${setData.pid}' '''; db!.update(DB_TABLE_SET, setData.toJson(), where: sqlWhere); await db.batch().commit();

删除

Database? db = await DTWDBHandle.internal().open(); String sql = ''' delete from $DB_TABLE_SET where account='${setData.account}' and pid='${setData.pid}' '''; db!.rawDelete(sql); await db.batch().commit();

查询

Database? db = await DTWDBHandle.internal().open(); String sql = '''select * from $DB_TABLE_SET'''; List<Map<String, dynamic>> maps = await db!.rawQuery(sql);

 


__EOF__

本文作者K
本文链接https://www.cnblogs.com/wangkejia/p/16203448.html
关于博主:评论和私信尽量在第一时间回复哦~
版权声明:如果您要转载,请注明出处哦~
声援博主:如果觉得文章对您有帮助,点击文章右下角【推荐】一下吧~
posted @   macroK  阅读(186)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示