如何在源代码中处理巨大的SQL字符串

Joh*_*mez 5 java sql coding-style

我正在开发一个项目,目前代码中有大约3000行的SQL字符串.

该项目是一个java项目,但这个问题可能适用于任何语言.

无论如何,这是我第一次看到这么糟糕的事情.代码库是遗留的,所以我们可以突然迁移到Hibernate或类似的东西.

你如何处理这样的非常大的SQL字符串?

我知道它很糟糕,但我不确切地知道建议解决方案的最佳方法是什么.

Gab*_*erg 11

在我看来,将这些硬编码值放入存储过程并从代码中引用sprocs可能会产生高成本和低成本.


Osc*_*Ryz 6

SQL是否有很多变量的字符串连接?

如果没有,你可以提取它们将它们放在资源文件中.但是你必须删除换行符中的字符串conatentation.

您使用的存储过程方法非常好,但有时当需要了解SQL正在做什么时,您必须从工作区切换到您喜欢的SQL IDE.那是唯一的坏事.

对于我的建议,它将是这样的:

String query = "select ......."+
3000 lines.
Run Code Online (Sandbox Code Playgroud)

ResourceBundle bundle = ResourceBundle.getBundle("queries");
String query = bundle.getString( "customerQuery" );
Run Code Online (Sandbox Code Playgroud)

那就是这个想法.