CoreData 练习

概念

Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架,不过功能肯定是没有Hibernate强大的.

  • NSManagedObjectContext 操作数据库的上下文
  • NSManagedObjectModel 模型文件对象(相当于数据库)
  • NSPersistentStoreCoordinator 持久化调度器关联上面的模型文件对象也是NSManagedObjectContext 必须设置的属性.
  • NSEntityDescription 数据实体 相当于表(也就是我们的一个表对应一个对象)

初始化操作

    // 创建上下文对象
self.context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:nil];

//设置 数据库存储路径
NSString * path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"student.sqlite"];
NSURL * fileUrl = [NSURL fileURLWithPath:path];

// 持久化调度器 关联模型
NSPersistentStoreCoordinator * store = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
NSError * error = nil;
//设置持久化调度器 数据库路径
[store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:fileUrl options:nil error:&error];


//设置上下文 持久化调度器
self.context.persistentStoreCoordinator = store;

插入数据

Student * student = [NSEntityDescription insertNewObjectForEntityForName:@"Student" inManagedObjectContext:self.context];

student.name =@"fdf";
student.age = @(10);

NSError * error = nil;
[self.context save:&error];

if (!error) {
    NSLog(@"success");
    
}else{
    NSLog(@"%@",error);
}

待续........

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容