標籤:
原理
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開發一行代碼系列:一行搞定資料庫