DB 中的 Java 类

标签 java database stored-procedures java-stored-procedures

谁能解释一下为什么要将 Java 类存储在 Db 中?它有什么好处?以及如何用Java类创建存储过程?

最诚挚的问候!

最佳答案

Oracle 在版本 8i 中将存储过程引入到其数据库中。 i 代表“互联网”,如“互联网就绪”,这基本上是一种营销。但是,Java 存储过程允许 Oracle 通过利用大量可用的 Java 库,极大地扩展数据库队列中可用的功能范围。 Oracle 8i 中的许多新数据库功能都是 Java 库的 PL/SQL 包装器,尤其是 XML 内容。

值得注意的是,Oracle 在 Oracle 9 中将许多功能重新写入了 native C 中,因为它的运行速度比包装的 Java 东西快得多。我知道,很喜欢。

对于我们来说,什么时候使用 Java 存储过程有意义?基本上,当 Java 中提供了 native 数据库语言中不可用的功能时。例如,我编写了 JSP 来包装 ICE Syslog java 类,因此我的 PL/SQL 日志记录例程可以写入 syslog 文件。这表明了 Java 的一个非常常见的用例 - 将数据库应用程序的范围扩展到操作系统中。也许 JSP 最常见的用途是编写一个 host 命令,该命令允许 PL/SQL 程序触发外部可执行文件。

我认识一些编写 JSP 的开发人员,因为他们了解 Java 而不想学习 PL/SQL。这还不够好,有两个原因:

  1. 使用内置函数总是比重新发明轮子更好
  2. 正如我已经提到的,数据库中的 Java 的性能不如 native 代码。

当然,如果您开发的产品必须运行于多种不同的数据库产品,那么 Java 的跨平台适应性非常有吸引力。不同风格的 DBMS 在其过程语言(T-SQL 与 PL/SQL 等)方面差异最大,因为与 SQL 不同,它没有标准。

如果您想了解如何在 Oracle 中编写 JSP,the online documentation是一个很好的起点。如果事实证明您使用的是不同的数据库而不是 Oracle,那么我确信该产品有它自己的同样精美的手册。

关于DB 中的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2802135/

相关文章:

c# - 传递我的逗号分隔字符串不会在 SQL 中生成结果

java - 向 Karate 框架添加自定义步骤定义

java - MATLAB Engine API for Java 的问题

vba - 在 Access 中使用 SQL Server 存储过程的输出参数

php - 多个客户表或大型整体表

database - 为什么数据库索引使用平衡树,而不是哈希表?

java - 使用 Java 调用 PostgreSQL 存储过程返回 null

java - android java消费vb.net wcf服务

java - 为什么这个简单的 RxJava 示例无法运行?

php - 你能查询一个数组吗?拉维尔 5.2