上一篇讲的是swift,这一篇我就来回想一下我之前的flutter项目.

社交类型的项目,自然是离不开谈天,涉及到谈天,自然少不了数据库存储等操作,flutter数据库也是比较老练的,比方对象型objectbox,realm,又比方sqlite,我在flutter项目中调查了好久,终究决议运用的还是sqlite3.争议来争议去,发现,其实sqlite用起来还是十分的顺手的.

写博客这方面, 我个人对老老实实一点点地去写技能流程的确没啥耐心,由于整篇的技能文,大部分的文字都比较水,其实重要的点也就那么一两个,所以本篇,我就当一个回想问,挑几个我当时形象比较深的,读者可能会碰到的一些问题来讲好了

数据库操作

db的创建流程也没啥好说的

Flutter Sqlite几个小点记载
其实在数据库操作这块,没啥好说的,也便是表晋级的时分费事,不过sqlite这块的升表操作,我很早以前也过一篇blog. 不过假如你自身对数据库字段改动不大的话,sqlite就现已十分足够用的.

表操作

表的操作也没啥好说的,flutter是单线程的操作,根本不会有并发的资源争夺发生.但是sqlite有一些要留意. 我这里提一个点,便是业务. 举例一个场景,谈天业务,当你回复某个陌生人的一条音讯,你需求做的操作有:

  1. 写入自身的这条音讯
  2. 将这个陌生人的会话移出陌生人列表
  3. 音讯列表的陌生人未读数总计需求削减
  4. tab上的总未读数要削减
  5. 这个陌生人在音讯列表中的数据要按时间次序排到榜首

假如中间出了什么问题,需求将整体的业务回滚. 这里假如乱用业务的话,可能会抛反常 “在业务中开启业务等等什么的”, 反常一下子没找到,就这样了解算了,这个方法,我个人的处理办法便是,在顶层的api中,调用数据库操作,执行txn,然后在后续所有的业务逻辑操作中,一致运用该业务对象,这样就可以处理了.比方这样

Flutter Sqlite几个小点记载

中间的任何数据库操作逻辑,都传递该业务进行即可.

字段规划

我将表的每个字段都单独建立成常量属性,这样在做sql句子的操作的时分,就彻底不会有写错字段的问题出现.

Flutter Sqlite几个小点记载
需求留意的是,不要把参数直接拼接到句子中,建议是运用whereArgs来操作,假如你用占位句子,string类型会出问题的.

Flutter Sqlite几个小点记载

sqlite的一个小优点

在谈天场景中,对会话字段的更新十分的好写,比方获取未读总数等等.

Flutter Sqlite几个小点记载

结尾

本篇文章的确也没啥营养,主要是我个人的回想记载,读者看个乐即可,也别太当个技能文.趁便吐槽下,现在人越来越浮躁了,愿意静下心来写文章共享的人越来越少了. swiftui的文章写的人也特别少,一不小心就点到cs&&&dn里去,然后这货满是付费文章,真是无语,我个人虽然不排斥知识付费,但是你丫的什么blog都付费,要不关键脸,能不能屏蔽掉这个网站啊囧.