美文网首页
iOS FMDB本地化封装

iOS FMDB本地化封装

作者: 忘川_之上 | 来源:发表于2016-11-03 17:00 被阅读50次


    1、下载地址:https://github.com/pengjinguang521/LocalManger.git。

    2、将demo中的文件夹EasyLocalFmdb拖入你的工程中,勾选Destination选项。

    3、添加依赖库libsqlite3.tbd,在添加完之后编译,没有报错,恭喜你本地数据库集成ok。在集成过程中使用的还是屏弃掉了苹果的coreData,使用fmdb。主要太繁琐,需要操作的地方比较多。“开发至简,封装至上”。是我对开发一贯的理解和作风,程序猿都是懒人你懂的。

    4、EasyLocalFmdb已经添加了FMDB 和 MJExtension如果你的项目中有这些内容的话就请不要重复引入了,代码写的比较早些,很多地方不太规范,还望使用过程中酌情雅正。

    5、下面讲怎么使用:

    5.1、导入头文件、创建.sqlite数据库文件

    #import "DBSaveHelper.h"

    //打开数据库procityarea.sqlite 如果不存在,则创建,并会在log栏打印地址

    [[DBSaveHelper sharedHelper]openDB:@"procityarea.sqlite"];

    5.2、创建模型对象,这是你需要做本地存储的对象,当然也可以是网络请求的对象

    模型对象

    5.3、构建本地数据库中的表:与上面模型对应

    创建数据库表

    5.4、存入方法,以及对数据的获取方法。

    增加查询的方法

    5.5、修改方法、删除方法。

    //    //删除id = 1的记录

    [[DBSaveHelper sharedHelper] DeleteTableWithTableName:TableOne ID:@"1"];

    //替换id =2 的数据库信息

    [[DBSaveHelper sharedHelper]UpdataDBWithTableName:TableOne AndID:@"2" AndModel:model];

    至此简单的增删改查就实现了。

    稍微复杂的逻辑的处理

    6.1 、自己写sql传入查询,这边返回的全部是字典,没有再做模型转化处理

    //    传入 sql 和 数组,数组中的内容为 sql中的?

    NSString * sql1 = [NSString stringWithFormat:@"select * from %@ where name = ?",TableOne];

    NSArray * arraytest = @[@"guang"];

    NSArray * arraySs = [[DBSaveHelper sharedHelper]searchDBWithSql:sql1 AndArray:arraytest AndTableName:TableOne];

    NSLog(@"%@",arraySs);

    6.2、当数据库升级时候,因为需要向表中添加属性时候的方法,这当时是我遇到的一道面试题,好吧当时蒙逼了,我说替换本地数据库,后来查了才知道有个叫alter的方法,今天将方法追加进去。

    [[DBSaveHelper sharedHelper] UpgradeTableWithTableName:TableOne andAttribute:@"sex text"];

    NSArray * array4 = [[DBSaveHelper sharedHelper] searchDBAllContentWithTableName:TableOne];

    //这里直接拿到模型数组

    NSLog(@"array4%@",array4);

    6.3、具体使用的时候当然不是像demo中将代码写在viewdidload中的 ,一般我会对应的进行二次封装写在相应的模型中并打上mark方便以后查找

    数据库样式

     文末:希望可以帮到还在为本地化烦恼的你,还在为代码冗余苦恼的你。当然代码也存在很多不足欢迎雅正,这里面demo只讲了功能,没有做ui还望见谅。

    相关文章

      网友评论

          本文标题:iOS FMDB本地化封装

          本文链接:https://www.haomeiwen.com/subject/jcxiuttx.html