.sqlj ファイルと .java ファイルの違いを説明できる人はいますか?
3 に答える
ウィキペディアの記事から:
JDBC は API を提供しますが、SQLJ は言語拡張で構成されています。したがって、SQLJ を含むプログラムは、コンパイルする前にプリプロセッサ (SQLJ トランスレータ) を介して実行する必要があります。
通常の Java ファイルでは、JDBC を使用してデータベースと対話します。DML (選択、挿入、削除など) を実行するたびに、文を最適化し、分析してアクセス プランを作成し、アクションを実行する必要があります。これを何度も行う必要がある場合、毎回同じプロセスを行うのはコストがかかる可能性があります。
代わりに、SQLJ は Java と SQL を組み合わせたものです。データベース ビューアーで行うように文章を作成すると、プリコンパイル時に文章が分析されます。つまり、文は静的であり、データベース内のパッケージが作成され、アクセス プランが含まれます。これは、クエリが一度だけ分析され、コンパイル時に何度も実行されることも意味します。
JDBCは、一連のパラメーターを指定して構築され、毎回異なるselectなどの動的クエリに適しています。SQLJ は、同じ構造を持つ静的クエリ用です。
SQLJ での開発は非常に簡単です。最後に、プリコンパイル時に、プロセッサは SQL 文を抽出し、プロファイル ファイルを作成してデータベースにバインドします。さらに、「最適化された」JDBC を含む一連の Java ファイルを作成します。
SQLJ と JDBC を 1 つのファイルに混在させて、それぞれの長所を活かすことができます。たとえば、select を更新用に宣言し、行を反復して変更することは、SQLJ では非常に簡潔です。
SQLJ があまり普及していないのは事実ですが、開発者がデータへのアクセス方法を分析せずにプログラムで考えるだけで、開発者がコードを書くだけで、プログラムが本番環境でリリースされたときにパフォーマンスの問題が発生する場合の問題です。いつも同じ。SQLJ は、DBA が高く評価するより柔軟なデータ アクセスを提供します。
ウィキペディアはこれを説明しています。
.java
ファイルは、通常の Java ソース コード ファイルです。.sqlj
ファイルは、SQL ステートメントが埋め込まれた Java ソース コード ファイルです。.sqlj
ソースファイルをプリプロセッサに渡し.java
て、それらから通常のファイルを作成する必要があります。その後、標準の Java コンパイラでコンパイルできます。