什么是持久性引擎(如ActiveRecord)?优势?缺点?
我听过所有关于Rail的持久性引擎(ActiveRecord)的讨论。我对它做了一次搜索,但我真的不知道它做了什么。它看起来像是一个映射到数据库的对象,但这就是我想到的。如果是这样,他们是否将对象保存到数据库以保持持久性?使用这种模式的优点是什么?缺点是什么 谢谢!什么是持久性引擎(如ActiveRecord)?优势?缺点?,activerecord,persistence,Activerecord,Persistence,我听过所有关于Rail的持久性引擎(ActiveRecord)的讨论。我对它做了一次搜索,但我真的不知道它做了什么。它看起来像是一个映射到数据库的对象,但这就是我想到的。如果是这样,他们是否将对象保存到数据库以保持持久性?使用这种模式的优点是什么?缺点是什么 谢谢! Matt Mueller活动记录基本上是一种将类映射到关系数据库表的模式。对象表示数据库中的行。AR框架通过为每个数据库引擎生成适当的SQL语句来处理这些对象的保存和加载 示例 Database Table
Matt Mueller活动记录基本上是一种将类映射到关系数据库表的模式。对象表示数据库中的行。AR框架通过为每个数据库引擎生成适当的SQL语句来处理这些对象的保存和加载 示例
Database Table Active Record Class
----------------------- --------------------------
People > Person
----------------------- --------------------------
FirstName : varchar(40) > string FirstName
LastName : varchar(40) > string LastName
该框架为您提供了以独立于数据库的方式检索数据的常用方法,该方法与编程语言很好地集成
people = Person.GetAll()
生成并执行以下内容:
SELECT FirstName, LastName FROM People
它所做的是读取AR类的结构并推断列名。检索到的数据也以相同的方式映射回类
这样做的主要优点是可以删除对单个数据库引擎的依赖。例如,如果您决定从MySQL切换到SQLite,那么一个经过适当编码的AR框架可以做到这一点,而几乎不需要更改现有代码
然而,一个缺点是,您受到所使用的特定AR框架的支配。如果它在特定情况下不能生成正确的SQL,或者不支持特定的功能,那么您可能不得不退回到自己编写它,这会破坏数据库独立性的目的