前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ORM,curd操作,连贯操作,ActiveRecord的区别和联系

ORM,curd操作,连贯操作,ActiveRecord的区别和联系

作者头像
PM吃瓜
发布2019-08-12 15:48:07
9870
发布2019-08-12 15:48:07
举报
文章被收录于专栏:PM吃瓜(公众号)PM吃瓜(公众号)

简单说就是把关系型数据库映射成对象模型。用对象来操作数据库。 例如: 数据库里面一个User表,有很多字段。编程时候用对象模型就是一个User类。 字段就是属性了 public class User{ private String id; private String username; public void setUsername(String username) { this.username = username; } }

对象-关系映射(OBJECT/RELATIONALMAPPING,简称ORM),是随着面向对象的软件开发方法发展而产生的。用来把对象模型表示的对象映射到基于S Q L 的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法 。O R M 技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化 。

对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。

对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

引入一个O/RMapping。实质上,一个O/RMapping会为你生成DAL。与其自己写DAL代码,不如用O/RMapping。你用O/RMapping保存,删除,读取对象,O/R Mapping负责生成SQL,你只需要关心对象就好。

ThinkPHP中的ORM CURD 和连贯操作

在ThinkPHP中基础的模型类就是Think\Model类,该类完成了基本的CURD、ActiveRecord模式、连贯操作和统计查询,一些高级特性被封装到另外的模型扩展中。基础模型类的设计非常灵活,甚至可以无需进行任何模型定义,就可以进行相关数据表的ORM和CURD操作,只有在需要封装单独的业务逻辑的时候,模型类才是必须被定义的。

ORM object-relational mapping,对象关系映射,ORM也是一种对数据库访问的封装。实现面向对象软件和关系数据库连接。 ActiveRecord 也是一种ORM。ActiveRecord 是将一些查询封装起来,一步到位。 Curd它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。CURD 定义了用于处理数据的基本原子操作。ThinkPHP就是使用add、save、select和delete方法表示模型的CURD操作。 查询语言, 由于业务逻辑的差异,CURD操作往往不是那么简单,尤其是复杂的业务逻辑下面。ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于读取、更新和删除等操作,主要涉及到where方法等连贯操作即可,无论是采用什么数据库,你几乎采用一样的查询方法. 查询语言仅仅解决了查询或者操作条件的问题,更多的配合还需要使用模型提供的连贯操作方法。可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作。 其实也就是下面的一些方法: where* table alias data field order limit page group having join* union* distinct lock cache relation result validate auto filter scope* bind* token comment index strict 总结: Curd关键字是“定义了用于处理数据的基本原子操作”。这是核心,但是也是超级简单的方法。不能永远都是curd啊。对于复杂的业务需求怎么处理呢,那就是查询语言+连贯操作 可以很好解决复杂的业务逻辑需求。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-03,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com