代码之家  ›  专栏  ›  技术社区  ›  shylent

查询ColdFusion外部的查询

  •  2
  • shylent  · 技术社区  · 16 年前

    我使用Adobe ColdFusion的经验,即使仍然有点有限,也绝对是愉快和愉快的。

    关于ColdFusion,我能说的所有好的事情中,有一个功能完全让我大吃一惊。它可能不是非常有效,也不是在生产中有用,但是无论如何,我在讨论所谓的“查询查询”功能,或者 dbtype="query" 属性 cfquery . 它允许您针对任意数据集运行SQL语句,而不仅仅是数据库连接。例如,您可以连接一个刚刚从数据库中检索到的结果集和一个内存结构(当然,这受制于某些限制)。它提供了一种快速而肮脏的方式来“后处理”数据,有时数据可读性更高(也更灵活!)例如,在循环中迭代数据集。

    然而,ColdFusion并不是一个很受欢迎的产品,我不想再讨论为什么会是这样。我要问的是,在其他语言中是否有对这种技术的支持(像一个库,或多或少是相同的)?蟒蛇?珀尔?红宝石?PHP?有什么事吗?因为,在我看来,这个功能的潜力是巨大的,可能不是在生产代码中,但如果您需要快速测试某些东西,它绝对可以节省您的生命。不用说,据我所知,SQL ColdFusion对此的使用有点有限,但这个想法仍然很好。

    7 回复  |  直到 12 年前
        1
  •  10
  •   Shawn Holmes    13 年前

    如果您没有找到任何处理数据和ColdFusion的东西,那么请记住它在其他编程语言中的表现非常好。您总是可以在CF中进行大量的查询处理,然后将您的处理逻辑包装在远程CFC中,并将它们公开为提供JSON的Web服务。

    这将让你受益于你对ColdFusion的发现,同时尝试其他语言。

    如果您需要离开CF,可以尝试使用python中的sqlacalchemy,或者像其他海报所说的Rails和Linq值得一玩。

        2
  •  3
  •   rip747    16 年前

    我不能用python、ruby、perl和php。然而.NET有一个称为 LINQ 这基本上是类固醇的QoQ。

        3
  •  1
  •   Jarrod    16 年前

    许多框架使用对象关系映射(ORM),它将数据库表转换为对象。

    例如,使用Rails可以从模型中获取数据,而不是直接与数据库通信。查询或查找将作为数组对象返回,而数组对象又可以自己查询。

        4
  •  0
  •   David Fekke    16 年前

    您也可以在.NET中通过使用Linq来实现这一点。Linq将允许您查询对象和数据库。

        5
  •  0
  •   np0x    15 年前

    在对查询的查询进行性能分析时,我对它们的执行时间感到惊讶,在我的测试中,我无法让它们在不到10毫秒的时间内返回,而仅仅对实际数据库的查询将在1毫秒或更短的时间内返回。我的理解(至少在CF MX 7中)是,虽然这是一个有用的函数,但它不是一个高度优化的函数。我发现手动循环查询可以更快地执行条件逻辑,从而用我的查询替换我试图执行的操作。

    也就是说,如果初始查询速度较慢,它比访问数据库更快。不要以为它总是比进行更有创意的排序或初始查询更快,因为每个QOFQ都远不是即时的。

        6
  •  0
  •   Mark    14 年前

    对于Java,有三个项目值得一看,每一个项目都有它自己的正反两个方面,有些比其他的更像SQL。约瑟克 JoSQL , JXPath MetaModel .

    也许有一天我会想出如何直接从Java下面的CF.调用QoQ;

        7
  •  -14
  •   yfeldblum    16 年前

    这种技术(ColdFusion的查询)是目前最糟糕的想法之一。它不仅将业务逻辑保存在数据库中,而且还将您在代码中所保留的少量业务逻辑清除到数据库中,尽管如此。

    你需要的是 好语言 弥补不足的技巧也不错。

    python和ruby以及不在列表中的其他语言(如c和haskell)对针对内存中对象编写任意且强大的查询具有特殊的支持。这实际上是您想要的技术,而不是ColdFusion的查询查询。针对内存中的对象编写查询的技术是一种称为 函数式编程 .