2016-11-29 9 views
0

問題 - Javaで生成されたクエリに基づいてテーブルを作成し、データを挿入するにはどうすればよいですか?Javaでクエリを選択して構築する方法

背景 - クエリに基づいた一連のテーブルがありますが、同じテーブルへのFKの左結合や同一の句のような一般的な操作があります。私は、同じジョイントを20回書き直すことなく、20のクエリを作成するきれいな方法を探しています。

私はこれまで何をやったか -

私は(左が参加し、サブクエリ、ユニオン)適度に複雑なクエリを実行する小さなアプリケーションを構築してきましたし、使用して新しいテーブルにクエリの結果を挿入;

Select col1 as new_col1, col2 as newcol_2 
    into new_table 
from (....) 

私は、単純な文字列は私のJavaコードに置き換える使用して交換する列名とNEW_TABLEのためのプレースホルダが含まれている基本SQLファイルを書き込むことによって、これをやりました。私はfrom(....)セクションが異なるテーブルを参照しており、いくつかのライブラリなしでクエリのその部分を構築するにはちょっと複雑すぎるため、約20種類の基本SQLファイルを作成しました。

+0

ここには正しい答えはありません。 ORMライブラリに加えて、速度やフリーマーカなどのテンプレート言語を使用してクエリとデータをマージすることを検討してください。 – javamonkey79

+0

[QueryDSL](http://www.querydsl.com/)は基本的にjOOQと同じ機能を提供し、 –

+0

@a_horse_with_no_name:これは、QueryDSLが確かにサポートしていないこの特定の機能のコンテキストなど、*本質的に*および/または*同じ機能*という用語を非常に幅広く解釈している); –

答えて

1

JavaオブジェクトをDBにラップする簡単な方法は、エンティティクラスとコントローラを作成することです。 Netbeansには、エンティティおよびコントローラクラスの生成を支援する素晴らしいツールがあります。ドキュメントhere

File->new File

はその後、データベースからエンティティークラスの検索ウィザードの手順に従います。クラスの後

あなたは

File-> new File

はその後、JPAコントローラフォームエンティティクラスを検索JPAコントローラを作ることになるでしょう作られています。

すべてのエンティティクラスを選択し、生成します!一度それを行うと、私はあなたがそのエンティティとコントロールを使用する方法を示します!

+0

eclipse has素晴らしいツールあまりにも –

+0

エンティティを生成したら、クエリの結果はどのようにデータベースに保存されましたか?これはORMアプローチ(JPAまたはHibernate)に対する私の関心事です。彼らは実際に "select into"のようなことをするようには設計されていません。 – Cam

関連する問題