iOS FMDB本地化封装


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、创建模型对象,这是你需要做本地存储的对象,当然也可以是网络请求的对象

iOS FMDB本地化封装_第1张图片
模型对象

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

iOS FMDB本地化封装_第2张图片
创建数据库表

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

iOS FMDB本地化封装_第3张图片
增加查询的方法

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方便以后查找

iOS FMDB本地化封装_第4张图片
数据库样式

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

你可能感兴趣的:(iOS FMDB本地化封装)