热门回答:
存储过程。最早的概念据我推断是来自于Oracle。最早oracle是只有函数的概念。依稀记得是oracle8还是9才加的存储过程package的概念。用于解决函数过于碎片化、不具备复杂的多逻辑功能。同时便于文件管理加入的概念。到后期基本所有数据库也都有了存储过程。如:mysql。sybase等。
存储过程是基于数据库底层的语法。与数据库是相互依存的。且各个类型数据库语法都不一样。
Java语言在很大一部分的优势就是为了解耦合和可移植性。所以也有经典的dao模式。目的也就是把数据库和业务层分开。如果直接调用存储过程。混淆了业务和数据库分层。打破了Java模式设计的初衷。而且。如果用存储过程写。比如原来用Oracle数据库。现在客户要求改成免费的Mysql数据库。意味着基本所有的存储过程全部要重写。基本不具备可移植性。
当然。万事没有绝对。阿里的整套体系庞大。数据库的能力强大。中间件的主机也足够横向扩展。像我们一般的项目没那么多的主机和算力可搭配。有时碰上复杂的报表或复杂的逻辑。也不得不借用数据库存储过程来实现。
一般来说。项目上数据库主机的配置比web主机相对强大得多。且存储过程在数据库操作逻辑上天然的快。在web主机不能横向扩展的情况下。也只能借用存储过程来实现。当然。用存储过程来处理也是占比很少。逼不得已情况下才使用。
其他观点:
存储过程不利于移植。受数据库限制。而且阿里巴巴都是大型分布式集群存储过程更是劣势巨大!越是大型的分布式系统越是追求编码业务而不是绑死在数据库上。因为你不知道那一天就要换数据库了
其他观点:
Java人多 程序处理数据更方便
以上就是由优质生活领域创作者 生活常识网 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文地址:http://www.shenzhoubaby.com/204417.html,转载请说明来源于:生活常识网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系@qq.com进行处理。分享目的仅供大家学习与参考,不代表本站立场。
评论(2)
存储过程,数据库,主机,概念,逻辑,分布式,业务,来实现,不具备,横向
没想到大家都对为什么阿里巴巴Java开发手册里要求禁止使用存储过程?感兴趣,不过这这篇解答确实也是太好了
存储过程。最早的概念据我推断是来自于Oracle。最早oracle是只有函数的概念。依稀记得是oracle8还是9才加的