0

谁能解释为什么在 Db 中存储 Java 类的想法?它有什么好处?以及如何使用 Java 类创建存储过程?

此致!

4

6 回答 6

2

Oracle 在 8i 版中将存储过程引入其数据库。i代表“ internet”,就像“internet-ready”一样,基本上是一种营销。但是 Java 存储过程允许 Oracle 通过利用大量可用的 Java 库来极大地扩展数据库中可用的功能范围。Oracle 8i 中的许多新数据库功能是 Java 库的 PL/SQL 包装器,特别是 XML 的东西。

值得注意的是,Oracle 在 Oracle 9 中将很多功能重新编写到原生 C 中,因为它的运行速度比封装的 Java 快得多。我知道,喜欢那个。

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

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

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

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

如果您想了解如何在 Oracle 中编写 JSP,在线文档是一个不错的起点。如果事实证明您使用的是不同的数据库而不是 Oracle,那么我确信该产品有自己同样出色的手册。

于 2010-05-10T11:34:13.713 回答
0

不太确定问题是什么......这个想法只是在Java中进行类似存储过程的操作,而不是更神秘和不熟悉的存储过程脚本语言。以下是它的工作原理:http ://www.oracle.com/technology/tech/java/jsp/index.html

于 2010-05-10T11:32:40.280 回答
0

可能是为了这里列出的好处。

您可以在此处找到有关如何创建它们的示例Oracle 和 Java 存储过程

于 2010-05-10T11:33:18.950 回答
0

我认为问题是关于对象关系映射。您可以以声明方式描述如何将 Java 对象映射到关系数据库表的规则。如果你这样做了,你可以节省大量的开发时间来编写 JDBC 代码、跟踪对象更改、实现加载策略等。

http://en.wikipedia.org/wiki/Object-relational_mapping

于 2010-05-10T11:36:44.677 回答
0

Sybase ASE 也能够处理 Java 存储过程,但是 ASE 15、IIRC 中只有 Java 1.2。有关好处 - 请参阅其他答案。

于 2010-05-10T11:39:26.020 回答
0

调试器,

正如其他一些海报所问的那样,您的问题非常模糊。

你指的是:

  1. 数据库中基于Java的存储过程?
  2. 将 Java对象映射到数据库表中?
  3. 将 Java 类的字节码存储在数据库表中?

对于第 1 点,一些数据库提供了一个编程钩子,允许您使用 Java 编写存储过程和函数并将它们暴露给 SQL 引擎

对于第 2 点,有对象关系框架将 Java 对象(实例)映射到关系表中以进行读写访问。(示例:参见休眠)

对于第 3 点,您可以假设编写一个 ClassLoader,它将从包含相关类的 BLOB 的数据库记录中加载类。

希望对一些人有所帮助。

于 2010-05-10T11:56:59.073 回答