zoukankan      html  css  js  c++  java
  • Core Data系列一——Before Core Data

    在了解Core Data是什么之前,首先介绍几个概念:

    1. ORM

      • 什么是ORM?
        对象-关系映射(object-relational-mapping),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射

      • 为什么会用到ORM技术?
        当你开发一个应用程序的时候(不使用ORM),你可能会写不少数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。你在DAL中写了很多的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来总是重复的。以保存对象的方法为例,你传入一个对象,为SQLCOMMAND对象添加SQLPARAMETER,把所有属性和对象对应,设置SQLCOMMAND的COMMANDTEXT属性为存储过程,然后运行SQLCOMMAND。对于每个对象都要重复的写这些代码。
        除此之外,还有更好的办法吗?有,引入一个O/R MAPPING。实质上,一个O/R MAPPING会为你生成DAL。与其自己写DAL代码,不如用O/R MAPPING。你用O/R MAPPING保存,删除,读取对象,O/R MAPPING负责生成SQL,你只需要关心对象就好。

    2. Active Record Pattern

      • 什么是active record pattern?
        In software engineering, the active record pattern is an architectural pattern found in software that stores in-memory object data in relational databases. The interface of an object conforming to this pattern would include functions such as Insert, Update, and Delete, plus properties that correspond more or less directly to the columns in the underlying database table.This pattern is commonly used by object persistence tools, and in object-relational mapping (ORM).
        也就是说,Active Record Pattern是在ORM中常用的一项技术。 我认为相对于普通的ORM技术来说它更优秀的一点是直观。你的类基本上和数据库中的表一一对应,并且这个类还同时负责把自己持久化,封装了CURD的操作,另外还封装了简单的业务逻辑。

    从ORM和Active Record Pattern的定义不难看出, FMDB不属于ORM技术, Core Data属于ORM技术(无需直接写SQL命令操作数据库)但是并不属于Active Record Pattern,Magical Record则属于Active Record Pattern。

    重要说明: 关于ORM和Active Record Pattern的说明,部分内容非原创, 来自于维基百科和网络。由于弄丢了资料来源,如有侵权请告知,将注明原出处。

  • 相关阅读:
    声明式事务
    AOP面向切面编程笔记
    IOC容器和Bean的配置实例
    IOC容器和Bean的配置
    nlogn的最长不下降子序列【tyvj1254挑选士兵】
    POJ1703 Find them, Catch them
    [code]poj3349 Snowflake Snow Snowflakes
    hdu 4607 Park Visit 树的直径
    hdu 1520 Anniversary party
    hdu 4863 Centroid of a Tree 树dp
  • 原文地址:https://www.cnblogs.com/mindyme/p/4908226.html
Copyright © 2011-2022 走看看