任何人都可以说存储过程的利弊和Java存储过程的优点和缺点?

Deb*_*ger 3 database stored-procedures java-stored-procedures

任何人都可以说存储过程的利弊和Java存储过程的优点和缺点?以及如何测试它.

最好的祝福!

APC*_*APC 7

支持和反对存储过程的参数往往会分解为您认为正确答案的问题:业务逻辑是属于数据库还是应用程序?在论证的陈述中,我会尽量保持中立.如果我成功,我的一些利弊就会自相矛盾.

PRO

  1. 存储过程可以轻松跨应用程序共享数据库代码
  2. 将数据相关逻辑与数据协同定位可以轻松地跨应用程序实施业务规则.此方法使数据所有者优先于数据用户.
  3. 存储过程使用为数据库编程定制的语言.
  4. 存储过程随数据库扩展.

CON

  1. 业务逻辑不属于数据库.
  2. 存储过程是用专业和笨重的编程语言编写的,普通开发人员没有兴趣学习.
  3. 我们不能要求DBA编写存储过程,因为DBA讨厌开发人员.
  4. 存储过程在数据库中运行,数据库是瓶颈.

其中许多一般要点也适用于Java存储过程.我写了一个你相关问题的答案,所以这些优点和缺点可能看起来很熟悉.

PRO

  1. Java存储过程允许我们扩展数据库程序可访问的功能.
  2. 特别是它可以让我们更灵活地将操作集成到数据库和操作系统域中.
  3. 很多开发人员都知道如何编写Java.
  4. Java存储过程允许我们跨不同的DBMS产品部署我们的数据库应用程序.

CON

  1. Java的性能不如本机数据库代码.
  2. Java存储过程需要编写定制代码,这些代码复制了内置功能.
  3. Java不适合数据库操作.
  4. Java可能会带来安全问题.特别是在从数据库内部运行OS上的程序时.

以下适用于本机存储过程和Java存储过程:开发人员编写的代码,不了解数据库的工作方式可以执行得非常糟糕.这同样适用于在没有适当专业水平的情况下配置的前端构建或ORM工具.但是,这种情况不太可能出现在本机存储过程中,因为它们的功能可以构建为构建高效的数据库应用程序.