database - 有没有存储过程的替代方案?

标签 database stored-procedures

<分区>

是否有存储过程的替代方案,安全且快速以及存储过程。我只知道休眠。还有其他类似的技术吗?

最佳答案

存储过程是放置在数据库上执行的代码(SQL)的地方,所以我理解这个问题的意思

“有没有其他方法可以打包运行在数据库上的代码?”

有几个答案:

  • 没有其他与存储过程完全相同的地方,但是您可以考虑其他选择。
  • 您可以将所有 SQL 编写为客户端代码(java 或其他)中的字符串
    • 这有很多问题(封装丢失、紧密耦合 -> 更难维护),但这不是一个好主意。
  • 您可以使用 NHibernate 等 ORM,它会在您的客户端逻辑和数据库之间插入一个层。 ORM 生成 SQL 以在数据库上执行。使用 ORM,比存储过程更难表达复杂的业务逻辑(笼统的概括!)。
  • 一种折中办法是用 Java(或您正在使用的任何语言)定义您自己的数据访问层 (DAL),并将其与客户端代码的主体分开(单独的类/命名空间等),以便您的客户端调用 DAL,DAL 解释这些并将 SQL 发送到数据库,将结果从数据库返回给客户端。

关于database - 有没有存储过程的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/175298/

相关文章:

sql - 如何在数据库中定义具有在另一个表中引用的多个值的列?

mysql - 帮助计数();

database - 如何将从消息驱动的 bean 中检索到的数据保存到数据库中?

sql - POSTGRESQL PGADMIN4 中的存储过程错误

mysql - 使用mysql递归调用的存储过程

mysql - 使用 SQL LIMIT 和 OFFSET 查询选择所有记录

java - 表格打印不适合页面尺寸

oracle - oracle中的分组存储过程

mysql - 为MySQL存储过程添加默认值为NULL的参数

mysql - mysql select语句中where子句中的if语句