存储过程 。最早的概念据我推断是来自于Oracle 。最早oracle是只有函数的概念 。依稀记得是oracle8还是9才加的存储过程package的概念 。用于解决函数过于碎片化、不具备复杂的多逻辑功能 。同时便于文件管理加入的概念 。到后期基本所有数据库也都有了存储过程 。如:mysql 。sybase等 。
存储过程是基于数据库底层的语法 。与数据库是相互依存的 。且各个类型数据库语法都不一样 。
Java语言在很大一部分的优势就是为了解耦合和可移植性 。所以也有经典的dao模式 。目的也就是把数据库和业务层分开 。如果直接调用存储过程 。混淆了业务和数据库分层 。打破了Java模式设计的初衷 。而且 。如果用存储过程写 。比如原来用Oracle数据库 。现在客户要求改成免费的Mysql数据库 。意味着基本所有的存储过程全部要重写 。基本不具备可移植性 。
当然 。万事没有绝对 。阿里的整套体系庞大 。数据库的能力强大 。中间件的主机也足够横向扩展 。像我们一般的项目没那么多的主机和算力可搭配 。有时碰上复杂的报表或复杂的逻辑 。也不得不借用数据库存储过程来实现 。
一般来说 。项目上数据库主机的配置比web主机相对强大得多 。且存储过程在数据库操作逻辑上天然的快 。在web主机不能横向扩展的情况下 。也只能借用存储过程来实现 。当然 。用存储过程来处理也是占比很少 。逼不得已情况下才使用 。
其他观点:
存储过程不利于移植 。受数据库限制 。而且阿里巴巴都是大型分布式集群存储过程更是劣势巨大!越是大型的分布式系统越是追求编码业务而不是绑死在数据库上 。因为你不知道那一天就要换数据库了
其他观点:
【为什么阿里巴巴Java开发手册里要求禁止使用存储过程?】Java人多 程序处理数据更方便
- 洗衣机上水中途暂停 洗衣机为什么进水停不了
- 2023失业补助金能领几个月?大家千万不要领失业补助金是为什么
- 为什么英短容易得传腹平时要注意什么
- 猫咪为什么刨水碗
- 自己交医保为什么医保卡没钱 原因是什么?
- 介绍洗衣机的能耗问题 洗衣机的输入功率小吗为什么
- 双桶洗衣机换的新电容脱水还是无力怎么办 洗衣机甩干桶为什么转得慢
- 为什么叫居庸关 关于居庸关的名字由来
- 为什么打完新冠疫苗手臂疼
- 不良人为什么关服 不良人服务器爆满了怎么办
