我买了一本关于Hibernate的书。我想了解一下Hibernate是什么以及什么是对象关系映射。
利用Hibernate在Hibernate上有很好的主题,我认为我现在能够编写简单的映射类。我的问题是,我认为我在Hibernate上遥遥领先,但我真的不知道为什么我们需要它。
这本书清楚地解释了Hibernate,但我认为我迷失了,因为它没有讨论为什么我们需要Hibernate和ORM。
答案 0 :(得分:2)
我也建议从wikipedia开始。
从那里,按照底部的链接。
提供一个简短的答案:ORM用于从数据存储中抽象,通常是数据库。这可以用于多种目的:
答案 1 :(得分:1)
数据持久性和逻辑是两个独立的问题。应用程序编码人员不应该关心IT员工本周决定使用的SQL风格,以及如何在关系实体和对象层次结构实体的不同范例之间进行转换。
DBA也不需要关注对象所有权规则以及业务层中其他几乎漏洞的问题。
实际上,在较大的系统中,您很少能完全与供应商无关,并且DAO层不可避免地会收集一些与ORM无关的查询以进行性能调整。像Hibernate这样的工具可以尽最大努力使这些情况尽可能少见和抽象。
答案 2 :(得分:0)
使用类似(N)的ORM Hibernate只是确保您不必担心编写SQL查询,它可以帮助您专注于“域”(业务逻辑)。
但是,为了能够创建高性能应用程序,需要对底层DB(和sql)有一些了解。 :)
答案 3 :(得分:0)
Wikipedia : Object Relational Mapping? :)
更准确地说,ORM允许您使用直接绑定到数据库的对象。
例如,我有一辆Car,它有4个物体门,每个门都有一个颜色,每个颜色都是一个名字。
使用ORM,我从数据库中获取Car对象。然后我去了一个Car.GetDoors(),我得到了一系列我的门,对于每一门,我都可以使用Door.GetColor()。GetColorName()。
这意味着我没有费心去编写SQL查询以从门表获取带有CarID的门,也没有从带有colorID的Color表中获取ColorName。因此,ORM允许我编写更少的代码:)
答案 4 :(得分:0)
您可能正在为一家大公司编写一个基于Web的应用程序,该应用程序可能涉及许多不同类的数十万个对象。您希望在面向对象的代码中编写所有业务逻辑,但这些对象需要持久保存到SQL数据库。使用ORM意味着您不必担心如何与SQL进行转换,而是可以专注于实现实际的应用程序。
答案 5 :(得分:0)