2016-11-29 63 views
0

問題 - 如何基於在Java中生成的查詢創建表並插入數據?如何在Java中將查詢構建到查詢中

背景 - 有一系列查詢基於(20左右)的表,但有一些常見的操作,例如左側加入FK到同一個表和where子句是相同的。我正在尋找一種乾淨的方式來創建20個查詢,而無需重寫相同的連接20次。

什麼,我這樣做的遠 -

我已經建立了一個小的應用程序,其執行適度複雜的查詢(查詢子,工會,左連接),並使用查詢結果插入到一個新表;

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

我寫它包含佔位列名的基礎SQL文件和NEW_TABLE我則更換使用一個簡單的字符串在我的Java代碼替換做到了這一點。我創建了大約20個不同的基本SQL文件,因爲from(....)部分引用了不同的表格,而且如果沒有一些庫,構建查詢的這一部分太複雜了。

+0

這裏沒有單一的正確答案。除了ORM庫之外,還可以考慮使用模板語言,如velocity或freemarker來合併查詢和數據, – javamonkey79

+0

[QueryDSL](http://www.querydsl.com/)提供了與jOOQ基本相同的功能,並且非常免費 –

+0

@a_horse_with_no_name:這是項非常廣泛的解釋*基本*和/或*相同的功能*,例如在這個特殊的功能,它肯定QueryDSL不支持(以及其他許多)的範圍內;) –

回答

1

將Java對象封裝在數據庫中的簡單方法是創建實體類和控制器。 Netbeans有很好的工具來幫助您生成實體和控制器類。文檔here

File->new File

然後搜索實體類從數據庫,按照嚮導的步驟。

下課後由你會希望JPA控制器

File-> new File

然後搜索JPA控制器形式的實體類。

選擇所有實體類並生成!一旦你這樣做,我會告訴你如何使用該實體和控件!

+0

日蝕很棒的工具 –

+0

一旦我生成了實體,查詢結果如何持久保存到數據庫中?這是我對ORM方法(JPA或Hibernate)的關注,它們並不是真正用於執行「select into」之類的事情。 – Cam