在配置文件中存储SQL查询?

5

大家对于将SQL查询存储在配置文件中的看法是什么?

这只是又一个琐碎的问题吗?

谢谢, Ben


你能详细说明为什么想要这样做吗?我认为这不是一个简单的是/否问题,也许有更好的替代方案来实现你想要的目标。 - CResults
1
抱歉,只是想澄清一下,我没有特定的场景想法,只是在寻找对这个主题的不同观点。 - Ben Crowhurst
5个回答

2

不,从来没有。我是认真的;)目前正在清理这里。

尝试看一下BLToolkit-它将它们存储在抽象类的属性中,然后动态生成整个访问代码。与在配置文件中使用它相同,但无需编写或查看愚蠢的DAL代码。


2

如果满足要求的话,这对我来说听起来不错。

您是想让客户查看和编辑查询吗?

您是想让开发/测试更加容易吗?

我肯定比将查询嵌入代码更喜欢这种方法。

但是有一个风险,就是这个文件会因为大量略有不同的查询(SORT ASCENDING,SORT DESCENDING,SUM(col1)+ SUM(col2),SUM(col1)+ SUM(col3)等)而变得臃肿。


2
你为什么不把它们放在代码中呢?我发现通常情况下,SQL 语句的变化速度与代码相同,这意味着如果你更改了 UserDao.java,你很可能同时需要更改 sql-statements.properties。尽管如此,代码被阅读的次数比被编写的次数多得多,因此编写易于阅读的代码对于一个干净的代码库至关重要。将 SQL 语句放在单独的文件中,开发人员必须查找其他地方才能弄清楚 UserDao 使用的查询,这使得理解你的代码更加困难。
简而言之,如果可能的话,我会避免这样做。

1

如果你使用iBatis,那么这就是你会做的。我看不出有什么害处。

当不必要的时候,这绝对比动态构建它们要好得多。


1

在这种情况下,我会将它们存储在数据库中:

  1. 这会让普通用户很难干扰我的查询并危及我的应用程序。
  2. 他们无法推断出我如何存储我的数据。
  3. 更改将自动反映,无需“推送”配置文件。

但实际上,我是在不知道您的实际情况的情况下进行推断。但是,我不希望其他人看到我如何与我的模式交互或者它是如何布局的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接