// // LKDBProperty+KeyMapping.h // LKDBHelper // // Created by upin on 13-6-17. // Copyright (c) 2013年 ljh. All rights reserved. // #import "LKDBUtils.h" static NSString* const LKSQLText = @"text"; static NSString* const LKSQLInt = @"integer"; static NSString* const LKSQLDouble = @"double"; static NSString* const LKSQLBlob = @"blob"; static NSString* const LKSQLNotNull = @"NOT NULL"; static NSString* const LKSQLPrimaryKey = @"PRIMARY KEY"; static NSString* const LKSQLDefault = @"DEFAULT"; static NSString* const LKSQLUnique = @"UNIQUE"; static NSString* const LKSQLCheck = @"CHECK"; static NSString* const LKSQLForeignKey = @"FOREIGN KEY"; static NSString* const LKSQLFloatType = @"float_double_decimal"; static NSString* const LKSQLIntType = @"int_char_short_long"; static NSString* const LKSQLBlobType = @""; static NSString* const LKSQLInherit = @"LKDBInherit"; static NSString* const LKSQLBinding = @"LKDBBinding"; static NSString* const LKSQLUserCalculate = @"LKDBUserCalculate"; //Object-c type converted to SQLite type 把Object-c 类型 转换为sqlite 类型 extern inline NSString* LKSQLTypeFromObjcType(NSString *objcType); @interface NSObject(TableMapping) /** * @brief Overwrite in your models if your property names don't match your Table Colume names. also use for set create table columes. @{ sql colume name : ( model property name ) or LKDBInherit or LKDBUserCalculate} */ +(NSDictionary*)getTableMapping; //simple set a colume as "LKSQLUserCalculate" //colume name +(void)setUserCalculateForCN:(NSString*)columename; //property type name +(void)setUserCalculateForPTN:(NSString*)propertyTypeName; //remove unwanted binding property +(void)removePropertyWithColumeName:(NSString*)columename; @end @interface LKDBProperty:NSObject @property(readonly,nonatomic)NSString* type; @property(readonly,nonatomic)NSString* sqlColumeName; @property(readonly,nonatomic)NSString* sqlColumeType; @property(readonly,nonatomic)NSString* propertyName; @property(readonly,nonatomic)NSString* propertyType; //创建表的时候 使用 @property BOOL isUnique; @property BOOL isNotNull; @property(strong,nonatomic) NSString* defaultValue; @property(strong,nonatomic) NSString* checkValue; @property int length; -(BOOL)isUserCalculate; @end @interface LKModelInfos : NSObject -(id)initWithKeyMapping:(NSDictionary*)keyMapping propertyNames:(NSArray*)propertyNames propertyType:(NSArray*)propertyType primaryKeys:(NSArray*)primaryKeys; @property(readonly,nonatomic)int count; @property(readonly,nonatomic)NSArray* primaryKeys; -(LKDBProperty*)objectWithIndex:(int)index; -(LKDBProperty*)objectWithPropertyName:(NSString*)propertyName; -(LKDBProperty*)objectWithSqlColumeName:(NSString*)columeName; @end