数据库操作工具类
来源:互联网 发布:在淘宝不给退货怎么办 编辑:程序博客网 时间:2024/05/18 00:31
- (void)openDB{ //加载模型数据文件---即在工程中创建的.xcdatamodeld文件,但在实际的路径中,以momd为后缀 NSURL *url = [[NSBundle mainBundle] URLForResource:@"Evaluate" withExtension:@"momd"]; //创建MOM NSManagedObjectModel *mom = [[NSManagedObjectModel alloc] initWithContentsOfURL:url]; //创建PSC NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc]initWithManagedObjectModel:mom]; //为PSC指定操作的数据库 //获取路径 NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Evaluate.sqlite"]; NSLog(@"%@",filePath); //转化为url NSURL *dbUrl = [NSURL fileURLWithPath:filePath]; NSError *error = nil; //执行打开数据库操作 [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:dbUrl options:nil error:&error]; if (error) { NSLog(@"打开数据库失败"); }else{ NSLog(@"打开数据库成功"); } //创建数据库操作对象 self.context = [[NSManagedObjectContext alloc] init]; self.context.persistentStoreCoordinator = psc;}#pragma mark--创建MO对象- (NSManagedObject *)createMO:(NSString *)entityName{ if (entityName.length == 0) { return nil; } //根据传的实体名创建MO对象--》self.context必须在打开数据库时初始化 NSManagedObject *mo = [NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:self.context]; return mo;}#pragma mark--1.添加对象- (void)saveObject:(NSManagedObject *)mo{ [self.context insertObject:mo]; NSError *error = nil; if ([self.context save:&error]) { NSLog(@"保存成功"); }else{ NSLog(@"保存%@失败:%@",mo, error); }}#pragma mark--2.删除数据- (void)delegateObject:(NSManagedObject *)mo{ if (!mo) { return; } [self.context deleteObject:mo]; NSError *error = nil; if ([self.context save:&error]) { NSLog(@"删除成功"); }else{ NSLog(@"删除%@失败",mo); } }#pragma mark--3.更改数据- (void)updateObject:(NSManagedObject *)mo{ if (!mo) { return; } NSError *error = nil; if ([self.context save:&error]) { NSLog(@"更改成功"); }else{ NSLog(@"更改%@失败",mo); }}#pragma mark--4.查询数据(同步线程)- (NSArray *)executeWithEntityName:(NSString *)entityName Predicate:(NSPredicate *)predicate{ if (entityName.length == 0) { return nil; } //创建查询操作对象 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:entityName]; //定义排序字段--按某个字段是否升序 NSSortDescriptor *sortDesc = [NSSortDescriptor sortDescriptorWithKey:@"id" ascending:YES]; request.sortDescriptors = @[sortDesc]; //设置分页查询 // int page = 0; // [request setFetchLimit:5];//设置每次查询的结果数量 // [request setFetchOffset:page * 5];//设置查询开始的位置 //定义查询条件 request.predicate = predicate; //执行查询操作 NSArray *resultArr = [self.context executeFetchRequest:request error:nil]; return resultArr;}
0 0
- 数据库操作工具类
- 数据库操作工具类
- 数据库操作工具类
- mysql 操作数据库 工具类
- PHP操作数据库工具类
- java 数据库操作工具类
- python操作数据库工具类
- java数据库操作工具类
- DBUtil数据库操作工具类
- Android数据库操作工具类
- 数据库操作工具类--DBHelper--C#2.0
- java操作数据库的工具类
- ibatis+spring操作数据库工具类
- android greenDao SQLite数据库操作工具类
- 我的数据库操作工具类
- JAVA 数据库操作工具类----mysql
- jdbc数据库操作工具类--DBUtil
- php中pdo数据库操作工具类
- ionic 签名apk
- Hive创建表时报错,Specified key was too long; max key length is 767 bytes
- PAT1006 Sign In and Sign Out (25)
- HTML&CSS——css中postion的fixed与absolute区别详解
- hostgator有独立的域名控制面板吗?怎么操作?
- 数据库操作工具类
- Ubuntu下如何安装并使用Objective-C
- Cookie实现同域,跨域单点登录
- u3d
- VMware不能上网的解决办法
- js 获取事件源
- iOS去掉UITableView分组时上方空白区域的方法
- pppoe工作原理详解
- 栈