接下來,我們運行一個 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
程序如何變化,以及調試和運行記錄等情況。