SQLJ は、 JavaとSQLを統合する取り組みの仮称です。これは、 IBM、Oracle、Compaq、Informix、Sybase 、 Cloudscape、およびSun Microsystemsのエンジニアによって 1997 年頃に開始された共同の取り組みでした。
これは、0、1、2の3つのパートで構成されています。パート0では、SQL文をJavaプログラムに埋め込む方法について説明します。SQLJパート0は、SQL:1999標準のパート10、別名SQLオブジェクト言語バインディング(SQL/OLB)の基礎となっています。[1] SQLJパート1と2では、SQL文からJavaクラス(ルーチンと型)を使用する逆の可能性について説明しています。パート1と2は、SQL標準のパート13、Javaプログラミング言語を使用したSQLルーチンと型(SQL/JRT)の基礎となっています。
「SQLJ」は、通常、 JDBCなど、Java に SQL を埋め込む他の手段と対比して、SQLJ パート 0 のみを指すために使用されます。
ANSIおよびISO規格
- SQLJ パート 0: ANSI X3.135.10-1998、「データベース言語 SQL - パート 10: オブジェクト言語バインディング (SQL/OLB)」
- SQLJ パート 1: ANSI NCITS 331.1-1999、「SQLJ - パート 1: Java プログラミング言語を使用した SQL ルーチン」
- SQLJ パート 2: ANSI NCITS 331.2-2000、「SQLJ - パート 2: Java プログラミング言語を使用した SQL 型」
パート0はJDBC 2.0との互換性のために更新され、2000年にISOによって承認されました。最後の2つのパートはISOに提出されたときに統合されました。パート2は、ANSIバージョンが仕様として十分に正式ではなく、ユーザーマニュアルのスタイルに近かったため、ISO提出用に大幅に書き直されました。統合バージョンは2002年に承認されました。[1]
- ISO/IEC 9075-10:2000、情報技術 - データベース言語 - SQL - パート 10: オブジェクト言語バインディング (SQL/OLB)
- ISO/IEC 9075-13:2002、情報技術 - データベース言語 - SQL - パート 13: Java プログラミング言語 (SQL/JRT) を使用した SQL ルーチンおよび型。
SQLJ パート 0
SQLJパート0仕様は主にOracleから始まり、Oracleは最初のリファレンス実装も提供しました。[1]
以下の SQLJ は SQLJ パート 0 の同義語です。
JDBC はAPI を提供しますが、SQLJ は言語拡張で構成されています。したがって、SQLJ を含むプログラムは、コンパイルする前に プリプロセッサ(SQLJ トランスレータ) を介して実行する必要があります。
利点
SQLJ が JDBC よりも優れている点は次のとおりです。
- SQLJ コマンドは、同等の JDBC プログラムよりも短くなる傾向があります。
- SQL 構文はコンパイル時にチェックできます。返されたクエリ結果も厳密にチェックできます。
- プリプロセッサは、クエリ プランがプログラムのコンパイル時に作成され、データベースに保存されて実行時に再利用されるため、動的 SQL よりもパフォーマンスの優れた静的 SQL を生成する場合があります。静的 SQL は、アクセス プランの安定性を保証できます。IBM DB2 は、SQLJ プログラムでの静的 SQL の使用をサポートしています。
デメリット
- SQLJ には前処理手順が必要です。
- 多くのIDE はSQLJ をサポートしていません。
- SQLJ は、 Hibernateなどの一般的な永続化フレームワークのほとんどをサポートしていません。
- Oracle 18c (12.2) では、データベースでの SQLJ のサポートが終了しました。
例
次の例では、SQLJ 構文と JDBC の使用法を比較します。
参照
参考文献
- ^ abc ジム・メルトン (2003).アドバンストSQL: 1999 . モーガン・カウフマン. pp. 352-364. ISBN 978-1-55860-677-7。
さらに読む
- Connie Tsui、「DB2 V8 Java アプリケーションに SQLJ を使用する」、IBM developerworks、2003 年 2 月 13 日
- Owen Cline、「SQLJ を使用したアプリケーションの開発」、IBM developerworks、2004 年 12 月 16 日
- Jason Price (2001)。『Oracle SQLJ による Java プログラミング』 O'Reilly Media。ISBN 978-0-596-00087-5。
外部リンク
- IBM Redbook: DB2 for z/OS および OS/390: Java 対応
- Oracle SQLJ 開発者ガイド
