iOS -FDMB 数据保存为blob后的增删改查

  2018.10.31

FMDB是iOS平台下的SQLite数据库,以OC方式封装后,更加方便快捷。

没学数据库之前,一直纠结用什么方式能够持久保存且追加不覆盖,直到看到了离线缓存SQLite。

FMDB应用在当前的项目中,保存好友数据,以往都是id主键加各种类型作为字段形成多条记录;

因为数据库要保存的是模型,因此字段改成了以blob为格式,将传入的模型增删改查都以blob 格式操作;

流程:

   1.封装一个工具类,类中包含增删改查、模型转data、data转模型等接口;

   2.老流程,初始化initialize中打开数据库,创建表格;

   3.以下增删改查,都是blob的,与平常的略有点不同。我是根据需求排序

      增(存):获取网络字典数组转模型数组,遍历模型数组,取出模型,模型转字典,字典转data,保存到数据库;

      查(取):查询某字段,返回数据集;随着数据集下移,取出blob里的data, 经过data转字典,字典转模型,放在数组中返回;

      改(备注):以改备注为例,需要以前的昵称和修改后的备注,存入的是blob数据没有昵称字段如何修改?只能遍历数组去取出需要修改的模型,将原来的昵称转成data,修改后的备注也转成data ,updata 时设置约束(但data==原来昵称data)时修改为新的备注blob;这样修改才能成功

    删:遍历数组,取出需要删除的ID、模型,转成data ,执行删除方法。

总结:备注一直没修改成功的原因

         1.使用代理逆传,接收方的代理方法执行比viewWillAppear快,所以viewWillAppear从数据库中取覆盖了备注

         2.需要拿到原来的昵称、修改的备注都改成data格式,才能去数据库中查询修改;

 

如果你是将数据模型存进数据库,字段以blob保存,可以使用以上方法,参见gitHub地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值