java - 使用字符串生成器或存储过程进行单行选择

标签 java sql jdbc plsql

我的应用程序中有很多单行选择查询,其中包含跨越 5-6 个表的多个联接。这些查询是根据使用字符串生成器从表单等输入的许多条件生成的。然而,我的团队负责人恰好是一名 SQL 开发人员,他要求我将这些单行查询转换为存储过程。

将单行选择查询转换到后端并作为 SP 执行所有 if 和 else 是否有任何优势。

最佳答案

将所有 sql 部分放在存储过程中的一个优点是,您可以将查询保存在一个地方,即数据库,因此更改或修改会更容易,而无需在应用程序层或前端层进行大量更改。

此外,如果 SQL 存储在数据库过程中,DBA 或 SQL 开发人员还可以对 SQL 进行微调。您可以将所有函数/存储过程保存在一个包中,这在性能和组织对象方面会更好(类似于在 Java 中创建包的方式)。当然,在包中您可以限制对其对象的直接访问。

这更多的是团队或部门的政策,无论是在前端还是在数据库本身中保留sql部分,当然就像@Gimby提到的,很多人可能有不同的观点。

更新 1

如果您有一个返回某些内容的 select 语句,请使用函数,如果您有 INSERT/UPDATE/DELETE 或类似的内容(例如发送电子邮件或其他业务规则),则使用过程并通过传递参数从前端调用这些内容。

关于java - 使用字符串生成器或存储过程进行单行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13343231/

相关文章:

java - 如何命名使用 Caliper 在线发送的运行?

java - 是否可以用堆实现最小优先级队列,或者是否需要二叉堆?

java - JDBC Statement 接口(interface) -executeUpdate 查询

java - 重复的正则表达式

java - 如何使用 izpack 将我的 jar 应用程序制作为安装程序?

SQL:在 Google BigQuery 上查找最接近的纬度/经度记录

SQL 选择多边形内的要素

SQL:避免循环依赖

java - Hibernate 配置中未找到 JDBC 文件

java - JDBC 返回生成的键或现有的键