単一の SQL ステートメントから pureQuery コードを生成することができます。ステートメントは Java コードの SQL ストリング、
単一 SQL ステートメントを含む SQL スクリプト、または SQL スクリプトの一部のいずれでもかまいません。
このタスクについて
「Java」パースペクティブの pureQuery 対応の Java プロジェクト内の SQL スクリプト、
および「SQL およびルーチン開発」パースペクティブのデータ開発プロジェクト内の SQL スクリプトを処理できます。SQL および XQuery エディターで開いたスクリプトを処理することもできます。
この処理を使用して pureQuery コードを生成できるのは、有効な SELECT、INSERT、UPDATE、DELETE、または CALL ステートメントに関してのみです。SQL ステートメントの JDBC prepareStatement() メソッドでエラーが発生すると、メッセージ・ボックスに、返されたエラー・メッセージが表示されます。
複数の SQL ステートメントからコードを生成する場合には、複数の SQL ステートメントからの pureQuery コードの生成を参照してください。
手順
単一の SQL ステートメントから pureQuery コードを生成するには、以下のようにします。
- 以下のどちらかの手順に従って、「SQL ステートメントからの pureQuery コードの生成」ウィザードを開きます。
オプション |
説明 |
Java コード内の SQL ストリングを処理する場合は、以下のようにします。 |
- Java パースペクティブに切り替えます。
- SQL ストリングが入った .java ファイルを、Java エディターで開きます。
- エディターで、SELECT、INSERT、UPDATE、DELETE、または CALL ステートメントの StringLiteral 内にテキスト・カーソルを置き、右クリックしてから、「pureQuery コードの生成」を選択します。
代わりに「表に pureQuery コードを生成」ウィザードが開いた場合は、テキスト・カーソルが StringLiteral に置かれていないか、テキスト・カーソルが特定のタイプの SQL ステートメントの 1 つに置かれていないかのいずれかです。
|
SQL および XQuery エディターで開いた SQL スクリプトに入っている SQL ステートメントの場合。 |
- エディターで、SELECT、INSERT、UPDATE、DELETE、CALL などのステートメントをすべて選択します。
- ステートメントを右クリックし、「pureQuery Code の生成」を選択します。
|
pureQuery 対応の Java プロジェクト内の SQL スクリプトの SQL ステートメントの場合。 |
- Java パースペクティブに切り替えます。
- 単一の SQL SELECT、INSERT、UPDATE、DELETE、または CALL ステートメントが入った .sql ファイルを右クリックし、「pureQuery コードの生成」を選択します。
|
データ開発プロジェクトの SQL スクリプトに入っている SQL ステートメントの場合。 |
- 「SQL およびルーチン開発」パースペクティブに切り替えます。
- プロジェクトの「SQL スクリプト」フォルダーを展開します。
- 単一の SQL SELECT、INSERT、UPDATE、DELETE、または CALL ステートメントが入ったスクリプトを右クリックし、「pureQuery コードの生成」を選択します。
|
ウィザードが開かずにメッセージ・ボックスが表示される場合は、エラー・メッセージを検討し、SQL ステートメントが無効である理由を判別します。
- ウィザードのステップを完了します。 ウィザード内のフィールドに関する情報を表示するには、F1 を押します。
- 「完了」をクリックして指定したファイルを生成します。
タスクの結果
pureQuery コードを生成すると、ワークベンチによって、データベースへのアクセスに使用できる Bean が作成されます。例えば、UPDATE ステートメントまたは SELECT ステートメントからコードを生成できます。SELECT ステートメントからコードを生成した場合には、照会結果を保持するために使用可能な Bean がワークベンチによって作成されます。
結合または Union を生成する SELECT ステートメントまたは計算された列を含む SELECT ステートメントで AS 節を使用しなければ、照会結果には名前が固有ではない列が含まれる可能性があります。
照会結果を示す Bean の生成時にワークベンチがこの問題を解決できるかどうかは、アプリケーションで使用するデータベースのタイプに依存します。
- DB2® for Linux, UNIX,
and Windows、
DB2 for z/OS®、
Informix® Dynamic Server の場合: ワークベンチは、1 つ以上の他の列と同じ名前を持つ列にマップされる、
プロパティーの @Column アノテーションを使用します。
例えば、アプリケーションで以下の単純な照会を実行するものとします。
select a.col1, b.col1 from a, b where a.id=b.id;
照会結果を保持する Bean 内の対応するプロパティーの
set() メソッドには、以下に示すように、
2 つの
id 列が存在する表の名前を提供する
@Column アノテーションが必要です。
public class JoinExample{
private int a_id;
private int b_id;
@Column (name="id", table="a")
public void setA_id (int a_id)
{
this.a_id = a_id;
}
public int getA_id ()
{
return a_id;
}
@Column (name="id", table="b")
public void setB_id (int b_id)
{
this.b_id = b_id;
}
public int getB_id ()
{
return b_id;
}
}
- Oracle の場合: ワークベンチは、問題のある列を Bean 内のプロパティーにマップする目的では、@Column アノテーションの table 属性を使用しません。
以下のいずれかの方法を使用して、それらの列をマップする必要があります。