有人建议我将ORM用于我正在设计的项目,但是我在查找有关其内容或工作方式方面遇到困难。
谁能给我关于ORM是什么以及它如何工作以及我应该如何开始使用它的简短解释?
有人建议我将ORM用于我正在设计的项目,但是我在查找有关其内容或工作方式方面遇到困难。
谁能给我关于ORM是什么以及它如何工作以及我应该如何开始使用它的简短解释?
Answers:
对象关系映射(ORM)是一种技术,使您可以使用面向对象的范例查询和操作数据库中的数据。在谈论ORM时,大多数人指的是图书馆实现了对象关系映射技术,因此短语“ORM”。
ORM库是用您选择的语言编写的完全普通的库,其中封装了处理数据所需的代码,因此您不再使用SQL。您可以直接使用与您使用的相同语言进行互动。
例如,这是一个完全虚构的情况,其中包含伪语言:
您有一本书类,您想要检索作者为“ Linus”的所有书籍。手动执行以下操作:
book_list = new List();
sql = "SELECT book FROM library WHERE author = 'Linus'";
data = query(sql); // I over simplify ...
while (row = data.next())
{
book = new Book();
book.setAuthor(row.get('author');
book_list.add(book);
}
使用ORM库,它将如下所示:
book_list = BookTable.query(author="Linus");
机械零件通过ORM库自动处理。
使用ORM可以节省大量时间,因为:
使用ORM库更加灵活,因为:
但是ORM可能会很痛苦:
for
循环中的重击。好吧,用一个。无论选择哪个ORM库,它们都使用相同的原理。这里有很多ORM库:
如果要在Web编程中尝试ORM库,最好使用完整的框架堆栈,例如:
除非您要学习一些东西,否则不要尝试编写自己的ORM。这是一项巨大的工作,而旧的要花很多时间和工作才能变得可靠。
谁能给我一个简短的解释...
当然。
ORM代表“对象到关系映射”,其中
该对象的部分是你与你的编程语言使用一个(在这种情况下蟒蛇)
该关系部分是一个关系数据库管理系统(即数据库)有其他类型的数据库,但最流行的是关系(你知道的表,列,PK FK等如Oracle的MySQL,MS-SQL)
最后,“ 映射”部分是您在对象和表之间建立桥梁的地方。
在不使用ORM框架的应用程序中,您可以手动执行此操作。使用ORM框架将使您减少创建解决方案所需的样板。
假设您有这个物件。
class Employee:
def __init__( self, name ):
self.__name = name
def getName( self ):
return self.__name
#etc.
和桌子
create table employee(
name varcar(10),
-- etc
)
使用ORM框架将使您能够自动地用db记录映射该对象,并编写如下内容:
emp = Employee("Ryan")
orm.save( emp )
并将员工插入数据库。
糟糕,并不是那么简短,但是我希望它足够简单,可以吸引您阅读的其他文章。
ORM(对象关系映射器)是软件的一部分/层,有助于将您的代码对象映射到数据库。
有些处理的方面比其他处理的要多...但是目的是减轻开发人员的负担。
这是Martin Fowler(数据映射器)的简短剪辑:
对象模型涉及以下三个概念数据抽象封装继承关系模型使用了关系或表的基本概念。对象关系映射(OR映射)产品将对象编程语言功能与关系数据库集成在一起。