objective-c - 基础篇 - 数据库网络 -- Core Data数据库持久化

一、Core Data

解析:Core Data的作用就是相当于java中的Hibernate,也就是对象持久化技术到数据库中。

注: 一:在项目创建时,需要点击 Use Core Data这样就会生成一个__.xcdatamodeld的持久化模型文件,相等于数据库中的表。二:在__.xcdatamodeld中添加了字段后,需要点击该字段,把系统默认勾上的Optional去掉。三:在对表数据赋值的时候其实使用的是KVC赋值模式[mosetValue:nameforKey:@"name"];

四:持久化数据库步骤基本如下:

     增的语句:

     1:获得应用程序代理对象(注:因为系统自动生成的内容在AppDelegate中所存在。而本项目只有这么一个文件,所以直接使用代理模式。)

     AppDelegate * app = [UIApplicationsharedApplication].delegate;

     2:获得托管上下文对象,代表着数据库,只要我们在xcdatamodeld文件中插入字段,那么这里将会自动创建数据库文件。

    NSManagedObjectContext * context = app.managedObjectContext;

   3: 定义一个托管的对象 . 代表着数据库表中的数据

    NSManagedObject * mo = [NSEntityDescriptioninsertNewObjectForEntityForName:@"Student"inManagedObjectContext:context];

  4:指定实体中的值(注:使用键值对的KVC模式)

    [mo setValue:nameforKey:@"name"];  

5:把托管对象放到上下文中

    [context insertObject:mo];

6:保存上下文,如果没有该步骤,那么就只是在内存中给修改而已,数据库是没有变化的。

    if ([contextsave:&err]) {

        NSLog(@"%@", [errdescription]);

    }

  查的语句:

/*指定条件的查询,其实只是加多了一个谓词(谓词就是定制一个条件) */

     //一:获得应用程序代理对象

     AppDelegate * app = [UIApplicationsharedApplication].delegate;

     //二:获得托管上下文对象,代表着数据库,只要我们在xcdatamodeld文件中插入字段,那么这里将会自动创建数据库文件。

     NSManagedObjectContext * context = app.managedObjectContext;

     //三:指定一个实体,实体指的是表

     NSEntityDescription * entity = [NSEntityDescriptionentityForName:@"Student"inManagedObjectContext:context];

     //四:创建一个查询

     NSFetchRequest * request = [[NSFetchRequestalloc ]init];

     [request setEntity:entity];

     //五:创建一个查询的谓词

    NSPredicate * predicate = [NSPredicatepredicateWithFormat:@"(age = %d)",22];

     //六:把谓词添加到查询中

    [request setPredicate:predicate];

     //七:运行一个查询,返回的是托管对象

     NSError * err =nil;

     NSArray * resultobjects = [contextexecuteFetchRequest:request error:&err];

     //八:遍历结果数组。

     if (resultobjects) {

     for (NSManagedObject * moin resultobjects) {

     NSLog(@"name = %@, age = %@", [movalueForKey:@"name"],[movalueForKey:@"age"] );

     }

//九:保存上下文到数据库

    if ([context save:&err]) {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值