用SQLJ开发数据库(2)
SQLJ是什么?
SQLJ是一种答应把静态的 SQL语句以文本形式嵌入Java程序中的语言。在写一个SQLJ应用程序时,我们编写一段Java程序然后遵循某些特定的标准法则把SQL语句嵌入在其中,这些法则定义了SQL语句怎样写入Java程序(具体情况请看Oracle 8i SQLJ开发指南与参考,你可以在Documentation Library光盘上找到)。
接下来,我们运行一个SQLJ翻译器,通过把嵌入式结构化查询语句替换为调用调用SQLJ运行时程序库的方式把SQLJ程序转换成一个标准的Java程序。生成的Java程序就可以使用任何标准的Java编译程序(例如javac)来编译了然后就可以配合数据库使用了。SQLJ运行期环境是由一个瘦(即没有额外系统开销)SQLJ运行时程序库组成,也就是说用纯Java实现调用相应的数据库(Oracle, DB2等等)的JDBC驱动程序。
SQLJ类似于其他的嵌入式结构化查询语言的实现,像Oracle Pro * C (嵌入C语言环境的SQL)。SQLJ语言设计的目的就是帮助基于Java的程序员构建数据库应用程序。SQLJ是一个ISO和ANSI标准,也就是说由领头的数据库与软件供给厂商开发和支持的,包括ORACLE数据库治理系统公司,国际商业机器公司,美国赛贝斯公司, Informix公司,美国康柏公司等。所有这些公司合作开发兼容的SQLJ翻译器来实现使用不同的数据库。
SQLJ的优点
一个编译过的SQLJ应用程序是一个标准的Java程序,可以在任何具备三个组件的环境中运行,这三个组件是:JVM, SQLJ运行时程序库和JDBC驱动程序。
它提供了下列好处∶
紧凑的代码 SQLJ代码比JDBC代码更加紧凑并且无差错。在编译时对语法和语义进行检查。SQLJ编译器提供了类型检查和模式对象检查来找出在SQL语句中的语法错误或遗漏或拼错这样的错误,这是在编译过程中进行而不是在运行过程中进行。因此,使用SQLJ编写的程序比使用JDBC编写的程序更加健壮。
多厂商互用性 SQLJ语法是由主要的软件供给厂商开发和支持的。因为SQLJ程序使用运行时JDBC调用访问数据库,所以SQLJ可以访问任何JDBC驱动程序可以实现的数据库服务器。
灵活的部署 因为SQLJ运行时程序库是基于Java的程序,所以SQLJ应用程序可以在任何JDBC配置环境中配置,例如瘦客户端,中间层或是数据库服务器上等。
供给厂商具体定制SQLJ通过后续的Java字节码的定制支持供给厂商具体产品的特色和扩展。它可以被用来改善SQL查询语言的执行性能,使用具体供给厂商提供的性能或功能上的扩展,而不用考虑SQLJ程序如何变化,以及调试和运行记录等情况。
(未完待续)