SQLJ VS JAVA文件

时间:2010-05-17 14:46:30

标签: java sqlj

有人可以解释.sqlj和.java文件之间的区别吗?

3 个答案:

答案 0 :(得分:1)

来自wikipedia article

  

JDBC提供API,而SQLJ由语言扩展组成。因此,包含SQLJ的程序必须先通过预处理程序(SQLJ转换程序)运行才能编译。

答案 1 :(得分:0)

维基百科explains this

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

答案 2 :(得分:0)

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

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

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

在SQLJ中开发非常简单,最后,在预编译时,处理器将提取SQL语句,创建要在数据库中绑定的配置文件,还会创建一组包含JDBC的java文件“优化的”

您可以将SQLJ和JDBC混合在一个文件中,从每个世界中获取最佳效果。例如,在SQLJ中声明一个select for update,然后迭代并修改一行非常简洁。

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