用SQLJ开发数据库
2007-11-11 04:17:57 来源:WEB开发网一个编译过的SQLJ应用程序是一个标准的Java程序,可以在任何具备三个组件的环境中运行,这三个组件是:JVM, SQLJ运行时程序库和JDBC驱动程序。
它提供了下列好处∶
紧凑的代码 SQLJ代码比JDBC代码更加紧凑并且无差错。在编译时对语法和语义进行检查。SQLJ编译器提供了类型检查和模式对象检查来找出在SQL语句中的语法错误或遗漏或拼错这样的错误,这是在编译过程中进行而不是在运行过程中进行。因此,使用SQLJ编写的程序比使用JDBC编写的程序更加健壮。
多厂商互用性 SQLJ语法是由主要的软件供应厂商开发和支持的。因为SQLJ程序使用运行时JDBC调用访问数据库,所以SQLJ可以访问任何JDBC驱动程序可以实现的数据库服务器。
灵活的部署 因为SQLJ运行时程序库是基于Java的程序,所以SQLJ应用程序可以在任何JDBC配置环境中配置,例如瘦客户端,中间层或是数据库服务器上等。
供应厂商具体定制 SQLJ通过后续的Java字节码的定制支持供应厂商具体产品的特色和扩展。它可以被用来改善SQL查询语言的执行性能,使用具体供应厂商提供的性能或功能上的扩展,而不用考虑SQLJ程序如何变化,以及调试和运行记录等情况。
使用SQLJ的开发步骤
下面是开发和运行一个SQLJ应用程序所需要做的事情:
使用SQLJ编译器编译SQLJ源文件。这一步生成调用SQLJ运行时的Java文件,以及二进制的SQLJ描述文件--包括存在于SQLJ源文件中的静态SQL语句的有关信息。使用Java编译程序编译Java代码。在编辑完成之后,生成的描述文件是使用特定数据库数据类型,扩展和特征性能定制的。
运行应用程序,使用SQLJ运行时程序库和特定数据库的JDBC驱动程序。举例来说,如果你的主.sqlj文件定义类MyClass,那么源文件名必须是MyClass.sqlj。编译器生成MyClass.java源文件,然后编译程序生成MyClass.class类文件。而且,翻译器和编译程序两者都生成profile - key类,MyClass_SJProfileKeys.class。翻译器根据你怎样声明它们来命名迭代程序类与连接上下文类。举例来说,如果你声明一个迭代程序,MyIter,将生成一个MyIter.class类文件。
下面是配置SQLJ的必要条件∶
SQLJ运行时程序库
JDBC驱动程序,例如:JDBC/ODBC桥,Oracle(大型网站数据库平台) JDBC/OCI驱动程序,Oracle(大型网站数据库平台)瘦JDBC驱动程序,DB2 JDBC驱动程序等等。
SQLJ程序将执行的JVM
现在让我们比较SQLJ和JDBC,并比较SQLJ/JDBC和PL/SQL。
SQLJ 与JDBC
SQLJ开发的目的是完善动态JDBC SQL结构化查询语言模型和静态的SQL结构化查询语言模型。与ODBC和JDBC动态模型不同,静态模型提供强类型应用程序翻译时间检查。这些不仅要求进行SQL语法的编译时检验和SQL语句使用的主机变量的类型兼容,而且查询本身的正确性与数据库模型中的表,视图,存储过程等等的定义有关。因为所有的SQL语句都要被编译,SQLJ可以作为一个性能更好的中间媒质。
赞助商链接