我知道每种方法都有利有弊,但是在放置 SQL 语句的位置是否有最佳实践?我一直将它们放在 Java 类中,但我来到了一个项目,它们通过 Spring 字符串构造函数注入。原因是如果 SQL 语句在应用程序上下文中,您不必删除所有的 " 和 + 来让 SQL 复制/粘贴到服务器上。我认为这不是一个很好的理由,但是这就是我目前介入的。我知道这也可以通过属性来完成。
所以我的问题是 SQL 语句应该放在应用程序上下文、Java 文件、属性文件还是我没有想到的某个地方?
更新:
从我得到的回复来看,准备好的语句似乎是 SQL 语句的最佳位置。但是动态生成的 SQL 语句呢?代码将有许多不同的字符串,这些字符串都将连接在一起以根据传入的内容进行查询。如果我们有一个可以传入(或不传入)的具有 6 个输入参数的方法,我将需要大量的准备好的陈述来说明所有的可能性。
我曾考虑过使用诸如 Hibernate 之类的 ORM 工具,但我正在使用 iSeries 数据库并且表的构造并不好。也许有一天我可以重写 Hibernate 并写出 900 行 SQL 语句......但一步一步。