我们目前使用CF8并且无法访问任何ORM功能。但是,我希望有人可以给我提供有关如何比我们现在更快地创建所有粗暴行为的任何提示。
现在我们创建一个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>
答案 0 :(得分:5)
我更喜欢DataMgr用于CRUD。它与许多CF版本和数据库引擎兼容。它也会自动应用cfqueryparam。
使用DatMgr的示例查询:
<cfset get_users = Application.DataMgr.getRecords("users", {id: arguments.id})>
这不会取代您的CFC,但它可能会为您节省相同的输入。我发现它对插入和更新操作特别有用。
答案 1 :(得分:3)
你试过CFBuilder吗?
使用Adobe CFC生成器(在ColdFusion Builder 2.0中) - &gt;创建CFC
我没有使用过Woodi,但是在CF7 / 8天里我使用了Illudium PU-36 Code Generator @ http://cfcgenerator.riaforge.org/并且运行良好。
答案 2 :(得分:1)
乍一看,我觉得你需要一个代码生成器。试试Woodi。
此外,
如果你是一个名为'user'的表,请创建两个组件。
用户扩展 w_user。这样,始终将代码生成器代码放在'w_user'中,并将代码中的任何自定义放在'user'中。因此,您的MODEL对象将只是'user.cfc'。
例如:获取用户记录
让该函数命名为'get_users()'。这可以通过Woodi生成。因此,代码应该在w_user cfc。
中虽然您可能遇到需要对其进行过滤的情况。让我们称之为get_userWithFilter()。这将在'用户'中。现在,您可以在此函数中引用'get_users()'函数。
如果您不需要过滤器,那么您可以直接从'user.cfc'调用get_users()函数(可通过继承获得)。