在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:BCSqliteORM_FMDB开源软件地址:https://gitee.com/BlockCheng/BCSqliteORM_FMDB开源软件介绍:BCSqliteORM v1.0an objective-c ORM base on FMDB(https://github.com/ccgus/fmdb) and objective-c runtime. UsageSetupI am using FMDB as SQLite wrapper. Implement BCORMEntityProtocolmake your model entity implement BCORMEntityProtocol protocol @interface ClassEntity : NSObject<BCORMEntityProtocol>@property (nonatomic,assign)NSInteger classId;@property (nonatomic,copy)NSString* className;@end @implementation ClassEntity- (NSString *)description{ return [NSString stringWithFormat:@"[Class:id(%ld) name:(%@)]:%p",self.classId,self.className,self];}+(NSString*)tableName{ return @"class";}+(NSDictionary*)tableEntityMapping{ return @{ @"classId":BCSqliteTypeMakeIntPrimaryKey(@"id", YES), @"className":BCSqliteTypeMakeTextDefault(@"name", NO,@"Software01") };}@end it will build a table like this.or just make a mapping it will build a sql like this: CREATE TABLE class ( id integer PRIMARY KEY AUTOINCREMENT NOT NULL, name text NOT NULL DEFAULT('Software01')); Open OR create a database fileyou can create a new datase file ,or open an existing file like this BCORMHelper* helper = [[BCORMHelper alloc]initWithDatabaseName:@"test.db" enties: @[ [ClassEntity class],[StudentEntity class]]]; OR BCORMHelper* helper = [[BCORMHelper alloc] initWithDatabasePath:@"/Users/BlockCheng/Library/Application Support/test.db" enties: @[ [ClassEntity class],[StudentEntity class]]]; Save an Modelan example model: ClassEntity* classeEntity = [ClassEntity new];classeEntity.className = @"Software02";classeEntity.classId = 2;StudentEntity* student = [StudentEntity new];student.age = 12;student.score = 80;student.classId = 2;student.studentNum = 421125;student.studentName = @"BlockCheng"; [helper save:classeEntity];[helper save:student]; query a modelBCSqlParameter *queryParam = [[BCSqlParameter alloc] init];queryParam.entityClass = [StudentEntity class];queryParam.propertyArray = @[@"age",@"classId",@"score",@"studentName",@"studentNum"];queryParam.selection = @"classId = ? and studentNum=?";queryParam.selectionArgs = @[@1,@421128];queryParam.orderBy = @" studentNum asc";id entity = [helper queryEntityByCondition:queryParam];NSLog(@"entity:----%@",entity); OR simply use entity = [helper queryEntityByCondition:BCQueryParameterMake([StudentEntity class], @[@"age",@"classId",@"score",@"studentName",@"studentNum"],@"classId = ? and studentNum=?", @[@1,@421128], @" studentNum asc", nil, -1, -1)];NSLog(@"entity:----%@",entity); query many modelsNSArray* entities = [helper queryEntitiesByCondition: BCQueryParameterMake([ClassEntity class], nil, @"classId = ?", @[@1], nil, nil, -1, -1)];NSLog(@"entities:----%@",entities); OR BCSqlParameter *queryParam = [[BCSqlParameter alloc] init];queryParam.entityClass = [StudentEntity class];queryParam.selection = @"classId = ?";queryParam.selectionArgs = @[@1];NSArray* entities = [helper queryEntitiesByCondition:queryParam]; update[helper update:student]; OR with a update condition [helper updateByCondition:BCUpdateParameterMake([StudentEntity class],@"studentName=?", @[@"new_name"],@"studentNum=?", @[@421125])]; delete[helper remove:entity]; OR with delete condition [helper deleteByCondition:BCDeleteParameterMake([StudentEntity class],@"studentNum < ?", @[@421135])]; architecture LicenseThe license for BCSqliteORM is contained in the "License.txt" file. |
请发表评论