我的项目使用N-Tier架构和通用框架:
对于几乎所有业务逻辑,我们使用Java代码并驻留在业务层中,但我的客户端要求我们将所有业务逻辑移动到数据库中并使用存储过程(数据库是Oracle)。
如果将业务逻辑移动到数据库,我试图说服我的客户并给出一些不利和优势:
缺点:
使用存储过程时:
我的客户还说:他们希望使用商店来修复项目而无需重新部署。我解释说,当改变业务逻辑可能需要改变输入,输出和用户界面时,我们仍然需要重新部署,我们应该将业务逻辑从数据库中删除。但他们拒绝了。
答案 0 :(得分:-1)
如果您使用ORACLE DB,那么永远不要低估存储过程的功能。我在许多非常繁重的应用程序中工作,是的,它有JAVA层但是在JAVA层中根本无法处理具有业务逻辑的大量数据。所以我们在存储过程中移动了大部分数据处理逻辑,它就像任何东西一样。
例如,您希望在前端显示逻辑报告,并且您确定它只有几个Kbs,并且您知道要生成此报告,您调用数据库并以MB为单位获取记录并在JAVA中执行业务逻辑,是否会要快?
我是java人,但仍然支持存储过程,因为你可以做很多事情,即使你可以在其中编写有用的业务逻辑。
同样存储过程在DB层工作,所以它总是快速比较JAVA.as我认为你在JAVA业务层中的复杂数据库相关查询只是移动到存储过程并使用java和显示检索所需的输出在前端也一样。
另外我想把存储过程的最佳优点。
它更快,因为可以在一次"往返行程中执行多个SQL查询等等。到数据库
使用多个应用程序中的存储过程是微不足道的
一个地方比多个
数据库快速且经过优化,可以很好地扩展。
可以从多个不同的框架和语言调用相同的过程。
逻辑与特定应用程序中的实现分离。
当数据库保持不变时,可能会因更改应用程序而减少返工。