gpt4 book ai didi

java - 面向对象语言(如 Java)中的嵌入式 SQL

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:16 26 4
gpt4 key购买 nike

让我在 OO 语言中使用 SQL 的其中一件事情是必须在字符串中定义 SQL 语句。

当我以前在 IBM 大型机上工作时,这些语言使用 SQL 预处理器从 native 代码中解析 SQL 语句,因此可以用明文 SQL 编写语句而无需混淆字符串,例如在 Cobol 中有一个EXEC SQL ....END-EXEC 允许纯 SQL 语句嵌入在 Cobol 代码中的语法构造。

<pure cobol code, including assignment of value
to local variable HOSTVARIABLE>

EXEC SQL
SELECT COL_A, COL_B, COL_C
INTO :COLA, :COLB, :COLC
FROM TAB_A
WHERE COL_D = :HOSTVARIABLE
END_EXEC

<more cobol code, variables COLA, COLB, COLC have been set>

...这使得 SQL 语句非常易于阅读和检查错误。 EXEC SQL .... END-EXEC 标记之间没有缩进、换行等限制,因此您可以根据喜好格式化 SQL 语句。

请注意,此示例适用于单行选择,当需要多行结果集时,编码会有所不同(但仍然很容易阅读)。

所以,以Java为例

  1. 是什么让“旧 COBOL” 方法不受欢迎?不仅是 SQL,而且系统调用都可以通过这种方法变得更具可读性。我们称它为嵌入式外语预处理器方法。

  2. 用于 SQL 的嵌入式外语预处理器是否有助于实现?您会看到能够在 Java 代码中编写 native SQL 语句的好处吗?

编辑

我真的想问您是否认为 OO 语言中的 SQL 是一种倒退,如果不是,那么可以做些什么来让它变得更好。

最佳答案

在 Java 中已经有一个嵌入式 SQL 的标准,叫做 SQLJ .

话虽如此,我从未见过它在野外使用过,而且我不知道它是否真的是一个选择,使用现代工具。当标准出现时,Oracle 大力支持它,但我认为它半途而废。

关于java - 面向对象语言(如 Java)中的嵌入式 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2026429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com