美文网首页eiYoiOScoreData,FMDB
4- coreData基本使用(增删改查,干货)

4- coreData基本使用(增删改查,干货)

作者: 春田花花幼儿园 | 来源:发表于2016-04-22 15:25 被阅读1717次

    一.文章概要

    当前使用工具是XCode7.

    这篇文章主要是写了对于基本数据类型的"增删改查"的操作,至于特殊类型比如UIImage,NSArray,NDDictionary我们在之后的几篇文章中讲到.

    二.前话

    从平常的使用来说,FMDB和coreData是项目中最经常使用的两个数据库持久化方式.
    CoreData 首先它是一个 ORM框架。 SQLite 与 FMDB 其实都脱离不了关系型(relational)数据 而我们平时使用的编程语言却是面向对象的,都是对象型的。
    在 iOS 中,coreData 和 FMDB 关于这两者的区别,我认为主要是如下几个方面

    coreData

    优点
    (1)映射之后 直接操作对象就能进行增删改查 更贴近 程序员的生活。
    (2)我们不需要再写SQL语句,避免了 SQL语句的繁琐,比如说 SQL语句经常要写一大堆的包含 values(name,sex) 还要有对应个数的?与前边的()中的属性个数对应
    缺点
    (1) coreData没有 java 中的 ORM 框架快速.尤其是多表操作的时候,效率并不是很高. java中的框架(Hibernate:特点:可以把 SQL语句和面型对象的查询语句混合使用.举个例子:它可以把复杂的多表操作语句用一行查询语句来执行完毕)。而 coreData操作多表的时候,需要创建多个对应数量的Requset,description,谓词,筛选器。
    (2)就单纯的批量插入数据的速度 相比较FMDB 稍微慢一点点

    三.FMDB

    如果你之前用过sqlSever数据库的话,继续往下看,当然你也可以直接跳过这一小节

    首先,想必软件工程专业或者相关专业的同学在学校学的就是sqlSever,对应的数据库课程也是免不了的.那么sql语句是我们必须要学习的."简单查询""多表查询"等等这些都是我们要学习的.恭喜你,你已经有了一定学习FMDB的基础了.

    再进一步说,你之前从事java或者安卓开发工作的时候,用到了sqlSever,那么再次恭喜你,你基本已经可以FMDB的那些基本功能了.

    由此,我们可见,FMDB的使用方式和之前在其他语言中使用sqlSever数据库的时候,是非常相似的.之前我们在使用sqlSever提到的那些关键点在FMDB中,也有体现,比如"打开数据库,关闭数据库""手敲sql语句,执行sql语句"......所以,FMDB,对于之前上手还是很熟悉,很简单的.

    你到现在还没有使用过FMDB. 那也不用太烦恼和害怕,数据库的基本格式都是固定的.既然是固定的,拷贝一段改改就可以了.

    扩展

    (1)问:"什么时候使用coredata 什么时候使用FMDatabases?"

    答: a. CoreData 在公司使用的比较少,用户的比较多的是FMDatabases。

    b.数据存储的结构比较简单的时候,使用CoreData

    c.CoreData 开发效率会高点,为什么?因为他是面向对象的,而且不用写sql语句. FMDatabases 数据结果比较复杂的时候,表与表之间的关联比较多的时候使用.

    (2)coreData 其实底层也是要写sql 语句的,coreData 帮我们把sql语句封装。

    四.你要的干货,利用coreData来持久化数据

    第一步,创建'模型文件'


    欢迎大家关注我的微博和我GitHub,我会不时分享和转发一些大牛的技术贴和开源项目.
    GitHub:https://github.com/lilongcnc
    博客地址:http://www.lilongcnc.cc


    相关文章

      网友评论

      • 书签123:博主,我是初学者,你的[self createCoreDataContent]方法最后一行self.managedContext,然后我就自己在viewController上定义了一个同样的属性,不然代码会报错,然后除插入buton的其他三个按钮都崩了。都崩在请求数据的时候 NSArray *objs = [self.managedContext executeFetchRequest:request error:nil];什么原因?
        书签123:@春田花花幼儿园 Xcode8之后好像有好多毛病,我再研究研究。
        春田花花幼儿园:可以看我的Demo比较下 我现在已经转用FMDB了
      • 凯撒牛:楼主我问一下关联怎么弄?比如我有一个一个user对应的有很多的很多个设备device设备的参数在对应很多的参数,我要关联这三个实体怎么操作friendship
        凯撒牛:@春田花花幼儿园 我通过实体找别的关联实体数据总是空的
        春田花花幼儿园:@凯撒牛 从上往下的第五张图中, 每个实体的relationships 里关联有联系的双方呀.

      本文标题:4- coreData基本使用(增删改查,干货)

      本文链接:https://www.haomeiwen.com/subject/nyrxrttx.html