iOS 和 SQL的對應關系
Model類結構 => SQL表結構
Model實例 => SQL表中的一行
Model實例的屬性 => SQL表中的一列
@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]