通常,应用程序在大小和/或可重用性方面的增长越多,对SQL语句的外部化/抽象的需求就越大。
硬编码(作为静态最终常量)是第一步。下一步是存储在文件(properties / xml文件)中。最后一步是驱动元数据(由像Hibernate /
JPA这样的ORM完成)。
硬编码的缺点是您的代码可能变得特定于数据库,并且每次更改都需要重写/重建/重新分发。好处是您可以将它放在1个地方。
存储在文件中的缺点是,随着应用程序的增长,它可能变得无法维护。优点是您无需重写/重建应用程序,除非您需要添加额外的DAO方法。
元数据驱动的缺点是您的模型代码与数据库模型紧密结合。对于数据库模型中的每个更改,您都需要重写/重建/重新分发代码。优势在于它非常抽象,您可以轻松地从数据库服务器切换而无需更改模型(但现在问自己:一家公司从数据库服务器切换的频率是多少?每三年至少一次)是吗?)。
为此,我不会将存储过程称为“好”解决方案。它们的目的完全不同。即使,您的代码将取决于所使用的数据库/配置。



