【发布时间】:2014-04-06 00:23:38
【问题描述】:
让我在 OO 语言中使用 SQL 时感到烦恼的一件事是必须在字符串中定义 SQL 语句。
当我以前在 IBM 大型机上工作时,这些语言使用 SQL 预处理器从本机代码中解析 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为例
-
是什么让 “旧 COBOL” 方法不受欢迎?不仅是 SQL,而且系统调用也可以通过这种方法变得更具可读性。我们称之为嵌入式外语预处理器方法。
-
嵌入式外语预处理器用于 SQL 是否有用?您会看到能够在 Java 代码中编写本机 SQL 语句的好处吗?
编辑
我真的想问你是否认为 OO 语言中的 SQL 是一种倒退,如果不是,那么可以做些什么来使它变得更好。
【问题讨论】:
标签: java sql preprocessor