iOSCoreData数据库:

原创 2015年11月18日 18:02:05
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;//操作管理器(增删改查)
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;//被管理的数据模型
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;//持久化协助管理器

  /**
     * 表示要向Person这个表里面插入一条数据
     */
    /*
     参数1:插入的表名
     参数2:托管上下文对象(coreData操作管理器)

     */
    //数据  ->(映射) 对象
    Person *per = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
    //设置返回实体对象的属性
    per.name = @"老王";
    per.age = [NSNumber numberWithInt:11];
    per.headImage = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"1" ofType:@"png"]];

    //保存记录
    [self.managedObjectContext save:nil];

    NSLog(@"%@",NSHomeDirectory());


    //查找数据
    NSFetchRequest *request = [[NSFetchRequest alloc] init];

    //获得表结构实体(把一张表进行实体化)
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];

    //设置查询的表结构实体(设置查询的是哪张表)
    request.entity = entity;



    /*
    //设置条件查询(谓语)
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@",@"老李"];

    request.predicate = predicate;
     */

    //设置升降序排列
    //YES代表升序,NO代表降序
    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];

    request.sortDescriptors = @[sort];

    //通过操作管理器发起查询请求
    //resultArr储存搜寻的结果
    NSArray *resultArr = [self.managedObjectContext executeFetchRequest:request error:nil];

    for (Person *per in resultArr) {

        NSLog(@"per.name = %@ per.age = %@",per.name,per.age);

    }


    /*
    for (Person *per in resultArr) {

        NSLog(@"per.name = %@ per.age = %@",per.name,per.age);
        //修改数据(更新)
        per.name = @"老李";

        //保存记录
        [self.managedObjectContext save:nil];

        //删除
        if ([per.age integerValue] == 90) {

            [self.managedObjectContext deleteObject:per];

            //保存记录
            [self.managedObjectContext save:nil];

        }

    }
     */

.M中:
    NSManagedObjectContext *_context;
引入头文件#import "AppDelegate.h"
- (void)loadDataFromCoreData
{
    //coreData查询

    AppDelegate *delegate = [UIApplication sharedApplication].delegate;

    _context = delegate.managedObjectContext;

    NSFetchRequest *request = [[NSFetchRequest alloc]init];

    //从哪个实体中查询数据
    NSEntityDescription *descrip = [NSEntityDescription entityForName:@"CDGoodsModel" inManagedObjectContext:_context];
    //查询规则,where xx = xx
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"cid = %d",_cid];
    [request setEntity:descrip];
    [request setPredicate:predicate];

    NSArray *array = [_context executeFetchRequest:request error:nil];
    [_dataArray addObjectsFromArray:array];
    [_myTable reloadData];
}

数据库删除:
AppDelegate *delegate = [UIApplication sharedApplication].delegate;
        _context = delegate.managedObjectContext;

        for (NSManagedObject *obj in _dataArray)
        {
            [_context deleteObject:obj];
        }
        [_context save:nil];

        [_dataArray removeAllObjects];


数据库插入:CDGoodsModel:表名
   CDGoodsModel *cdModel = [NSEntityDescription insertNewObjectForEntityForName:@"CDGoodsModel" inManagedObjectContext:_context];
            cdModel.imgURL = [NSString stringWithFormat:@"%@",model.imgURL];
            cdModel.price = [NSString stringWithFormat:@"%@",model.price];
            cdModel.discount = [NSString stringWithFormat:@"%@",model.discount];
            cdModel.cid = [NSString stringWithFormat:@"%d",_cid];

            NSError *error = nil;
            if(![_context save:&error])
            {
                NSLog(@"coreData保存数据失败,error=%@",error);
            }else
            {
                [_dataArray addObject:cdModel];
            }

        }

        //刷表
        [_myTable reloadData];

URL 的赋值不可以放到init里

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Oracle和mysql数据库中sql语句的一些细微差别

大家都知道,在企业的数据库应用中,就属Oracle和mysql数据库应用的最为广泛,oracle数据库通常用于大型企业的数据库构建,而中小型企业大多会选择mysql数据库,其运行和维护成本都较小,那么...

单KEY业务,数据库水平切分架构实践

本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及...

典型数据库架构设计与实践 | 架构师之路

本文将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案.

oracle数据库数据泵导入相关总结

1、安装orcale(64位11g企业版,安装时注意字符集为 ZHS16GBK) 2、建表2个空间(D:\oracle\orcl路径根据自己oracle安装路径调整) CREATE TABLESPA...

SQL Server附加数据库失败,错误5120问题解决办法

1、错误3415问题:附加数据库的时候,发现总是附加失败,查看消息时发现问题如下: 查看消息后发现错误代码为3415 原因:数据库文件是只读的 解决方法:在文件属性中去掉只读属性2、错误51...

Java入门代码--数据库操作

范例12-1:连接mldn数据库 package cn.mldn.demo; import java.sql.Connection; import java.sql.DriverManager;...

Mysql数据库巩固

1.在驱动管理器中会装入两个mysql驱动. 解决方案:使用反射 C...

数据库设计

一.三大范式三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解): 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF是对记录的惟一性约束,要求记录有惟一...

SQL Server数据库表结构导出到Excel表

要把SQL Server的数据库表的机构直接导出到excel中并且导出后带有表结构中的各项说明。方法步骤如下。 一、执行SQL语句 1、打开MS SQL Server 2、点击“新建查询” 3...

局域网中连接windows环境下的oracle数据库

我在局域网中的ip是:192.168.1.100,将数据库TNS信息配置到同事本地的`tnsnames.ora`文件,使用pl/sql developer无法连接,报错**`TNS-12535: TN...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)