什么是 Web 应用程序中的 ORM?
Posted
技术标签:
【中文标题】什么是 Web 应用程序中的 ORM?【英文标题】:What is an ORM in a web application? 【发布时间】:2011-01-07 18:24:13 【问题描述】:我最近收到一家服务器公司的回复,询问我们是否在我们的应用程序中使用 ORM 来完成筛选应用程序端的所有工作(如 Rails),或者我们是否编写了大量 SQL、嵌入式函数等来使数据库服务器为您处理。
谁能解释一下这是什么意思。我们的 Web 应用程序由 php 脚本组成,这些脚本具有调用数据库以检索数据行的函数,然后 PHP 根据需要处理这些行以将结果返回给用户。
谢谢
【问题讨论】:
我同意为此使用谷歌。使用此链接:google.com/… 感谢所有留下有用答案的人,我发现与真实的人互动比谷歌更有价值,祝你好运。 你们是否意识到这个特定的 *** 问题是谷歌 ORM 时的第一个结果?这就是谷歌搜索结果的创建方式。如果问题只允许在互联网上问一次,那么你在互联网上只会有一个答案,这很糟糕,因为你只有一个特定的措辞和观点。大多数情况下,它只是官方文件,通常在教学上还有很多不足之处。抱歉,当您在 Google 上搜索某些内容而您找到的答案是“google it you moron”时,这真是太烦人了。 @WalturBuerk 我同意你的观点,SO 上的人们需要放松一点,我看到很多好的问题和答案被否决或删除,因为它们在技术上不符合 SO 的“准则”。 【参考方案1】:这是一个对象关系映射。请参阅下面的***链接。
http://en.wikipedia.org/wiki/Object-relational_mapping
【讨论】:
已更新以反映 Bears 的上述评论从映射器到映射。【参考方案2】:对象关系映射是一种将数据库对象(表、视图...)映射到 OOPL 中的类/对象的简单方法。 Hibernate 和 NHibernate 是 ORM 的几个例子。它完成了处理和映射结果集的所有繁琐任务..
【讨论】:
【参考方案3】:ORM 是一篇关于对象关系映射的Wikipedia 文章。
【讨论】:
【参考方案4】:ORM 是一种抽象,旨在简化在面向对象语言中使用关系数据库的过程。它基本上是一组类和方法,可让您在不直接使用 SQL 的情况下创建、检索和更新数据。
例如,而不是写作 $result=mysql_query('select * from sandwiches where color='green' and size='2');
您可以使用类似的界面 $result=$sandwiches->get('color'=>'green',=>'size'=>'2');
ORM 将其转换为 SQL 并执行查询、处理连接等。
流行的 PHP ORM 是 Doctrine 和 Propel
如果您不知道自己是否在使用,那您就不太可能!
【讨论】:
那么如何识别 PHP Web 应用程序中使用的是哪个 ORM? @BhargavSushant 它应该在包含中很明显......如果您的意思是您拥有代码的那个。如果您的意思是其他人正在运行 Web 应用程序,则应该没有办法分辨。【参考方案5】:它基本上使您的数据库表在您网站的 PHP 端看起来像对象,因此您可以轻松地操作数据。
例如,如果您有一个 User 表,那么获取此用户的名称就像这样做一样简单:$myUser->getName();
在您的数据库中添加一个新用户将是:
$myUser = new User();
$myUser->setName('John Doe');
$myUser->save();
当然这是伪代码(实际上是 PHP Symfony/Doctrine 代码),但这是一个简单的例子,所以你明白了。
【讨论】:
【参考方案6】:ORM 用于将数据库对象映射到应用程序对象。
在使用 ORM 的简单应用程序中,您应该具有从/向 DB 获取/设置数据的函数应该返回适当的应用程序对象/对象。
【讨论】:
【参考方案7】:ORM 是对象关系映射器。它将 java 对象映射到数据库表,并允许您通过代码执行一些数据库事务。 ORM 工具的 EX 就像 Hibernate、Ibatis ..
【讨论】:
以上是关于什么是 Web 应用程序中的 ORM?的主要内容,如果未能解决你的问题,请参考以下文章
什么是 Spring Data JPA 中的默认 ORM 提供程序