有人可以解释.sqlj和.java文件之间的区别吗?
答案 0 :(得分:1)
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非常欣赏。