概念
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);
}
待续........