BGFMDB是在FMDB的基础上进行封装,由于多了中间一层的转化,所以性能有所下降,为了能满足更高性能需求的app,所以我特意重构sqlite API层逻辑,打造这款‘简约时尚强悍版’存储框架,名为BGDB,此款是OC版.
platform :ios, '8.0'
target '工程名称' do
pod ‘BGDB_OC’, '~> 1.1’
end
1.直接下载库源码
2.添加所需依赖库:libsqlite3
/**
只要在自己的类中导入了NSObject+BGModel.h这个头文件,本类就具有了存储功能.
*/
#import <Foundation/Foundation.h>
#import "NSObject+BGModel.h"
/**
本库自带的自动增长主键.
*/
@property(nonatomic,strong)NSNumber* ID;
/**
想要定义'唯一约束',实现该函数返回相应的key即可.
*/
+(NSArray *)uniqueKeys{
return @[@"name"];
}
/**
存储.
*/
[p save];
/**
忽略某些属性存储.
*/
[p saveIgnoredkeys:@[@"name",@"age",@"dog.name",@"dog.age"]];
/**
更新(条件语句跟sqlite原生的一样).
*/
[p updateWhere:@"where name='大哥哥' and dog.name='二哈'"];
/**
忽略某些属性不要更新(条件语句跟sqlite原生的一样).
*/
[p updateWhere:@"where age=26 and dog.name='二哈111'" ignoredkeys:@[@"name",@"dog.name",@"dog.age"]];
/**
sql语句批量更新设置.
*/
[People updateSet:@"set name='黄芝标' where age=26"];
/**
查询全部.
*/
NSArray* All = [People findAll];
/**
条件查询(条件语句跟sqlite原生的一样).
*/
NSArray* pSome = [People findWhere:@"where age=26 or dog.name='二哈-------'"];
/**
条件删除(条件语句跟sqlite原生的一样).
*/
[People deleteWhere:@"where name='黄芝标'"];
/**
在只需要字典转模型功能的情况下,可以不必要再引入MJExtension那么多文件,造成代码冗余,缩减安装包.
用法跟MJExtension一样.
*/
+(id)bg_objectWithKeyValues:(id)keyValues;
+(id)bg_objectWithDictionary:(NSDictionary*)dictionary;