在哪里存储代码中使用的长/完整查询?

时间:2009-04-16 17:07:52

标签: sql

这是我的情况。我注意到当你在每个使用它们的函数中嵌入查询时,代码变得难以维护。有些查询往往增长得非常快,并且在连接每一行后往往会失去可读性。所有连接附带的另一个问题是,您必须测试特定查询并粘贴它。您被迫删除所有“将查询字符串保存在一起的所有内容。

所以我的问题是,用什么方法将查询与代码分开?我尝试过搜索,但看起来不是正确的,因为我找不到相关内容。

我想请注意,由于我的查询从生产数据库中获取数据,因此无法查看视图和存储过程。

谢谢。

6 个答案:

答案 0 :(得分:4)

如果您关注MVC pattern,那么您的查询应该都在模型中 - 即代表实际数据的对象。

如果没有,那么您可以将所有重复查询放在脚本文件中,包括每个请求中只需要的那些。

然而,连接和那种东西很难摆脱;这就是程序员存在的原因:))

答案 1 :(得分:4)

这两个词将是你最好的朋友:存储过程

答案 2 :(得分:3)

我通过在表示存储在表中的实体的类中包装查询来避免此问题。所以accounts表有一个Account对象。它将有一个插入/更新/删除查询。

我见过查询存储在文件中的地方,模板用于替换部分查询。

Java有一种叫做SQLJ的东西 - 不知道它是否曾经起飞过。

LINQ也可能提供一些解决方案。

答案 3 :(得分:3)

冒着被指责没有回答这个问题的风险,我给你的建议就是不这样做。使用您选择的O / RM,您会立即看到此问题消失。

答案 4 :(得分:2)

我通常创建一个数据类,表示数据库中表示的对象的数据要求。因此,如果我有一个客户类,那么我创建一个customerData类,其中包含所有数据访问逻辑。这使数据逻辑远离实体类。您可以在此处添加所有CRUD方法以及自定义数据方法。

根据您的语言,您还可以使用存储过程或ORM工具。

主要关键是让您的数据逻辑远离您的业务和实体逻辑。

答案 5 :(得分:0)

我在生产环境中使用存储过程,我们也处理行......