CoreData的使用

1、先认识一下这几个类
(1)NSManagedObjectContext(被管理的数据上下文)
作用:用来管理所有表的操作, 对表的实体对应的数据库中的表的操作(插入,查询,修改,删除)

(2)NSManagedObjectModel(被管理的数据模型, 对应.momd文件)
数据库所有表格或数据结构,包含各实体的定义信息
作用:添加实体的属性,建立属性之间的关系

(3)NSPersistentStoreCoordinator(数据库的连接器, 持久化存储助理)
作用:用来管理数据库的,可以设置数据存储的名字,位置,存储方式,和存储时机

(4)NSManagedObject(被管理的数据记录)
相当于数据库中的表格记录

(5)NSFetchRequest(获取数据的请求)
相当于查询语句

(6)NSEntityDescription(实体结构 对应单个表)
相当于表结构

(7)后缀为.xcdatamodeld的包 (CoreData的模型文件)
数据模型编辑器 编译后为.momd或.mom文件
作用:描述app中的所有实体和实体属性

2、实现表操作(插入、查询、修改、删除)

(1)插入数据

//1、插入数据
//创建一个需要插入到Person表中的新数据对象person1
Person *person1 = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
person1.name = @"王五";
person1.age = [NSNumber numberWithInt:99];

//保存。 调用save:方法 实现对数据库中Person表的插入操作
[self.managedObjectContext save:nil];


(2)查询数据

//2、查询数据
//获取Person表的实体对象
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];

//创建查询请求
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = entity; //设置需要查询的是哪个表

//执行查询操作
NSArray *array = [self.managedObjectContext executeFetchRequest:request error:nil];
for (Person *person in array) {
    NSLog(@"查询结果:%@, %d", person.name, [person.age intValue]);
}


(3)修改数据

//3、修改数据
//先查询到数据,然后再修改
NSArray *array1 = [self.managedObjectContext executeFetchRequest:request error:nil];

//执行修改: 将名称改为“李四”,将年龄改为30
for (Person *person in array1) {
    person.name = @"李四";
    person.age = [NSNumber numberWithInt:30];
}
//保存。 调用save:方法 实现对数据库中Person表的修改操作
[self.managedObjectContext save:nil];

//执行查询操作
NSArray *array11 = [self.managedObjectContext executeFetchRequest:request error:nil];
for (Person *person in array11) {
    NSLog(@"修改后:%@, %d", person.name, [person.age intValue]);
}


(4)删除数据

//4、删除数据
//查询到数据,然后再删除
NSArray *array2 = [self.managedObjectContext executeFetchRequest:request error:nil];

//执行删除: 删除zhangsan
for (Person *person in array2) {
    if ([person.name isEqualToString:@"zhangsan"]) {
        [self.managedObjectContext deleteObject:(NSManagedObject *)person];
    }
}
//保存。 调用save:方法 实现对数据库中Person表的删除操作
[self.managedObjectContext save:nil];

//执行查询操作
NSArray *array22 = [self.managedObjectContext executeFetchRequest:request error:nil];
for (Person *person in array22) {
    NSLog(@"删除后:%@, %d", person.name, [person.age intValue]);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值