【发布时间】:2013-08-15 01:18:57
【问题描述】:
我知道每种方法都有利有弊,但是否有关于将 SQL 语句放在何处的最佳做法?我一直将它们放在 Java 类中,但我进入了一个项目,通过 Spring 字符串构造函数将它们注入。原因是如果 SQL 语句在应用程序上下文中,您不必删除所有的 " 和 + 来让 SQL 复制/粘贴到服务器上。我认为这不是一个很好的理由,但是这就是我暂时介入的。 我知道这也可以通过属性来完成。
所以我的问题是 SQL 语句应该放在应用程序上下文、Java 文件、属性文件还是我没有想到的某个地方?
更新:
从我得到的回复来看,准备好的语句似乎是 SQL 语句的最佳位置。但是动态生成的 SQL 语句呢?该代码将有许多不同的字符串,这些字符串将连接在一起以根据传入的内容进行查询。如果我们有一个可以传入(或不传入)的具有 6 个输入参数的方法,我将需要大量的准备好的陈述来解释所有的可能性。
我曾考虑过使用诸如 Hibernate 之类的 ORM 工具,但我正在使用 iSeries 数据库并且表的构造不是很好。也许有一天我可以重写 Hibernate 并写出 900 行 SQL 语句......但一步一步。
【问题讨论】:
-
在存储过程中。
-
嗯,首先,您应该始终使用预编译语句(PreparedStatements)。这样,您的所有查询通常都可以是带有参数的固定字符串。如果你注入它们,如果你修改查询,可能你将不得不更改代码,所以我宁愿问你你的特定案例的需求(非功能性要求)是什么,这样更容易给你一些客观的答案。
标签: java sql spring architecture