3

我们目前使用 CF8,无法访问任何 ORM 功能。但是,我希望有人可以给我任何提示,告诉我如何比我们现在做的更快地创建我所有的 crud 动作。

现在我们创建了一个 cfc,其中包含每个新组件所需的函数,将所有 db 字段名称硬编码到每个函数中,这感觉就像需要很长时间才能完成。不幸的是,老板不允许我们使用像 CFWheels 这样的东西,我们永远手动创建每个功能。

我不是在寻找根据数据库中的内容自行创建的脚本,而是为我们编写的任何脚本创建必要的 crud 操作的更快方法。

下面是我们为所有应用程序编写的基本功能。所以我希望有人可以给我一些指导,让我更快地创建所有这些东西。

<cfcomponent extends="master.cfc">
    <cffunction name="users" access="public" returntype="query">
    <cfargument name="dsn" type="string" required="yes">
    <cfargument name="id" type="numeric" required="yes">

    <cfquery name="get_users" datasource="#arguments.dsn#">
    SELECT ID,firstname,lastname,email
    FROM users
    WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.id#">
    </cfquery>

    <cfreturn get_users >
    </cffunction>
</cfcomponent>
4

3 回答 3

5

对于 CRUD,我更喜欢DataMgr。它与许多 CF 版本和数据库引擎兼容。它也会自动应用 cfqueryparam。

使用 DatMgr 的示例查询:

<cfset get_users = Application.DataMgr.getRecords("users", {id: arguments.id})>

这不会取代您的 CFC,但它可能会为您节省相同的输入。我发现它对插入和更新操作特别有用。

于 2013-05-17T04:28:35.293 回答
3

你试过 CFBuilder 吗?

使用 Adob​​e CFC 生成器(在 ColdFusion Builder 2.0 中)-> 创建 CFC

http://help.adobe.com/en_US/ColdFusionBuilder/2.0/Using/WS0ef8c004658c1089-1b4fc34c122964e1318-8000.html

我没有使用过 Woodi,但我在 CF7/8 天使用了 Illudium PU-36 代码生成器@http://cfcgenerator.riaforge.org/,它运行良好

于 2013-05-17T05:31:14.147 回答
1

乍一看,我觉得你需要一个代码生成器。试试伍迪

还,

假设您有一个名为“用户”的表,请创建两个组件。

  1. 用户.cfc
  2. w_user.cfc

用户扩展w_user。这样,始终将您的代码生成器代码放在“w_user”中,并将代码中的任何自定义放在“用户”中。因此,您的 MODEL 对象将只是“user.cfc”。

例如:获取用户记录

让函数命名为“get_users()”。这可以用 Woodi 生成。因此,代码应该在 w_user cfc 中。

虽然您可能会遇到需要一些过滤器的情况。让我们称之为 get_userWithFilter()。这将在“用户”中。现在,您可以从该函数内部引用“get_users()”函数。

如果您不需要过滤器,则可以直接从 'user.cfc' 调用 get_users() 函数(可通过继承获得)。

于 2013-05-17T03:51:14.100 回答