【问题标题】:ORM: why should i use it? [duplicate]ORM:我为什么要使用它? [复制]
【发布时间】:2010-06-03 16:05:12
【问题描述】:

可能的重复:
Are there good reasons not to use an ORM?
Why should you use an ORM?

你好, 我在 SQL 领域开发多年(许多不同的 sql 服务器,如 Oracle、MSSql、Mysql),我一直很高兴这样做。我最近在 ORM 周围看到了很多东西,我在问我为什么要走向这个世界。 你能给我一些好点吗,让我花时间学习一种不同的方式来做我今天已经做的事情? 提前致谢 c.

【问题讨论】:

标签: sql entity-framework orm


【解决方案1】:

如果你这么写,这么多年:

string query = "SELECT * FROM myUsers WHERE Name = '" + aName + "'";
ResultSet result = sql.Execute(query);
UserList users = TransformResultSetToUsers();

那么你是时候为自己找到一个合适的 ORM(并且非常害怕 SQL 注入攻击)。

ORM 为您做的就是隐藏方法、安全性、性能、缓存、映射等,否则会花费大量时间来编写自己的程序。这样做怎么样:

User currentUser = DaoUsers.GetUserByName(aName);
currentUser.Name = "new name";
DaoUsers.UpdateUser(currentUser);

它涵盖了您的所有查询、更新等。如果您在家中使用 MySQL 进行测试,并且在使用 SQL Server 时,您需要做的就是更改连接字符串。哦,它提供了缓存(在 NHibernate 等情况下),这使得这个速度快如闪电,如果不需要,甚至不需要接触数据库。

All-in-all:使用 ORM 意味着更容易。不用担心了。没有更多的错别字。让 ORM 引擎处理一切。从对象设计数据库,而不是从“CREATE TABLE”语句。专注于编程逻辑,而不是担心 SQL 的多样性。

最重要的是:类型安全如果您将 ORM 与类型安全的 OO 语言一起使用,这将使编译器在您开始调试错误之前就捕获它们。

【讨论】:

    【解决方案2】:

    做几个数据库项目(没有ORM)我可以看到的优势是:

    1. 执行 CRUD(创建、读取、更新、删除)的大量代码可以通过编写一个 XML 文件或实例化几个对象来简单地变出。这可以为您提供一个巨大的领先优势。

    2. 您可以在单个位置定义架构,即 XML 文件或几个对象。这太棒了,因为它实现了 DRY 原则!

    3. 为您的面向对象应用程序提供了一个漂亮、干净的对象抽象来访问数据,而不是您自己创建的一些 hackish 对象(取决于您的编程技能)。

    缺点:

    1. ORM 的抽象可能会泄漏,当它不起作用时,您会在试图弄清楚它在后端发挥的作用时头疼。

    2. ORM 不适用于许多语言,或者处于 alpha 阶段(C++,我在看你!)。

    注意:我必须承认我还没有使用过 ORM,但我计划在下一个项目中使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-24
      • 2010-09-17
      • 2010-11-01
      • 2019-08-22
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      相关资源
      最近更新 更多