0

谁能解释 .sqlj 和 .java 文件之间的区别?

4

3 回答 3

1

来自维基百科文章

JDBC 提供 API,而 SQLJ 由语言扩展组成。因此,包含 SQLJ 的程序在编译之前必须通过预处理器(SQLJ 翻译器)运行。

于 2010-05-17T14:48:53.283 回答
0

在普通的 Java 文件中,您使用 JDBC 与数据库进行交互。每次执行 DML(选择、插入、删除……)时,都应优化、分析语句以创建访问计划,然后执行操作。当您必须多次执行此操作时,每次都执行相同的过程可能会很昂贵。

相反,SQLJ 是 Java 和 SQL 的组合。您可以像在数据库查看器中一样编写句子,并且在预编译时,将对句子进行分析。这意味着,这些语句将是静态的,并且将在数据库中创建一个包并包含访问计划。这也意味着,查询只分析一次,编译时间,执行多次。

JDBC 更适用于动态查询,例如在给定一组参数的情况下构建的 select,并且每次它们都不同。SQLJ 用于具有相同结构的静态查询。

在 SQLJ 中开发非常容易,最后,在预编译时,处理器将提取 SQL 语句,创建一个配置文件以绑定到数据库中,并且它还将创建一组 java 文件,其中包含 JDBC “优化”

您可以将 SQLJ 和 JDBC 混合在一个文件中,从各个方面汲取精华。比如声明一个select for update,然后迭代修改一行,在SQLJ中就很简洁了。

SQLJ 确实不是很流行,但那是开发人员只在他们的程序中思考,没有分析如何访问数据,开发人员只编写代码的问题,而当程序在生产中发布时,性能问题是总是一样。SQLJ 提供了 DBA 非常欣赏的更灵活的数据访问。

于 2012-02-08T14:13:55.363 回答
0

维基百科对此进行了解释

文件.java是普通的 Java 源代码文件。.sqlj文件是带有嵌入式 SQL 语句的 Java 源代码文件。您必须.sqlj通过预处理器传递源文件以从中生成普通.java文件,然后您可以使用标准 Java 编译器对其进行编译。

于 2010-05-17T14:48:48.113 回答