码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发一行代码系列:一行搞定数据库

时间:2015-04-01 23:48:00      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:ios开发   ios   fmdbhelper   database   

原理

iOS 和 SQL的对应关系

Model类结构      =>    SQL表结构

Model实例       =>  SQL表中的一行

Model实例的属性   =>   SQL表中的一列


Model和Table的对应

@interface TestModel :NSObject

@property (assign, nonatomic) NSInteger age;
@property (assign, nonatomic) CGFloat height;
@property (assign, nonatomic) long distance;
@property (assign, nonatomic) double maxDistance;
@property (assign, nonatomic) BOOL isOK;
@property (assign, nonatomic) char mChar;


@property (assign, nonatomic) CGRect rect;
@property (assign, nonatomic) CGPoint point;
@property (assign, nonatomic) CGSize size;
@property (assign, nonatomic) NSRange range;


@property (strong, nonatomic) NSNumber *number;
@property (strong, nonatomic) NSString *string;
@property (strong, nonatomic) UIColor *color;
@property (strong, nonatomic) NSDate *date;

@property (strong, nonatomic) NSData *data;// convert to data
@property (strong, nonatomic) NSValue *value;
@property (strong, nonatomic) UIImage *image;

@end


对应的表结构就是 TABLE TestModel (age type,height type,distance type,isOK type,mChar type,...)


方法

下面是一些可用的方法,还在完善中。。。


+(ModelToTableMap*)getModelToTableMap;

+(NSString*)getDBPath;
+(NSString*)getTableName;
+(NSArray*)getPrimaryKeys;

+(NSDictionary *)getPropertyToColumnMap;
+(NSDictionary *)getDefaultValueDictionary;
+(NSDictionary *)getLengthDictionary;
+(NSDictionary *)getCheckValueDictionary;
+(NSDictionary *)getIsUniqueDictionary;
+(NSDictionary *)getIsNotNullDictionary;

+(BOOL)shouldModelToTableMapContainParentProperties;
+(BOOL)shouldModelToTableMapContainSelfProperties;

+(NSString *)getDateFormatterString;
+(NSString *)getDBImagePathWithImageName:(NSString *)imgName ;
+(NSString *)getDBDataPathWithDataName:(NSString *)dataName;


+(BOOL)createTable;

+(BOOL)dropTable;


+(id)firstModelWhere:(NSObject *)where;
+(id)firstModelWhere:(NSObject *)where orderBy:(NSString*)orderBy ;


+(NSArray *)allModels;
+(NSArray *)findModelsWhere:(NSObject *)where;
+(NSArray *)findModelsWhere:(NSObject *)where orderBy:(NSString*)orderBy offset:(int)offset count:(int)count;


+(BOOL)insertModel:(NSObject *)model;
+(BOOL)insertModelWhenNotExists:(NSObject *)model;


+(BOOL)deleteModel:(NSObject *)model;
+(BOOL)deleteModelsWhere:(NSObject *)where;


+(BOOL)updateModelsWithModel:(NSObject *)model where:(NSObject *)where;
+(BOOL)updateModelsWithDictionary:(NSDictionary *)dic where:(NSObject *)where;


+(BOOL)isModelExists:(NSObject *)model;


- (BOOL)saveModel;
- (BOOL)deleteModel;
- (BOOL)updateModel:(NSObject *)theNewModel;
- (BOOL)updateModelWithDictionary:(NSDictionary *)dic;


使用

TestModel *model = [[TestModel alloc] init];
model.age = 20;
model.image = [UIImage imageNamed:@"img.jpg"];

//增加
[model saveModel]
//删除
[model deleteModel]
//修改
[model updateModelWithDictionary:@{@"age":@(21)}]
//查找
[TestModel allModels]

下载地址:点这里

iOS开发一行代码系列:一行搞定数据库

标签:ios开发   ios   fmdbhelper   database   

原文地址:http://blog.csdn.net/iitvip/article/details/44815937

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!