iT邦幫忙

2

有人對JAVA查詢字串QueryParameter熟的嗎...請進

  • 分享至 

  • xImage

各位大神好
最近再開發各種不同專案
每個寫到JAVA要轉譯SQL的時候每個用到套件都不太一樣
通常我都是寫了一大串SQL指令直接丟給JAVA直接執行處理即可
不用管太多,把查詢字串拼出來就對了

但是最近遇到這專案是用QueryParameter
他是一個把Select,Where,Join,order 給拆開來的JAVA查詢字串
大概像這樣

https://ithelp.ithome.com.tw/upload/images/20230217/20137810jHOFGMe5vo.jpg

大概還看的出來他再幹嘛,因為查詢也只是很簡單的select where from
但如果我今天一旦查詢字串複雜起來了,需要join一些有的沒的...
我的這串param指令也沒辦法依照順序了,便會變的很複雜
於是我很天才想到了一個方法,我直接把查詢字串全部寫到select就好...
結果他在最後面給我加個from...

https://ithelp.ithome.com.tw/upload/images/20230217/20137810FVkYHOivSj.jpg

痾,看來是我想的太天真了
有人常組這種QueryParameter的嗎..
如果我想組出這種需要子查詢 join from 很多字串的SQL
該怎麼依序組出呢

史帝夫 iT邦新手 3 級 ‧ 2023-02-20 09:48:29 檢舉
這比較像是你公司內用的lib吧?!所以可能問公司內的前輩們比較快吧..看是否有其他方式組出你想要的SQL
或是把你的SQL的from拆出來塞入param.from讓他生成SQL時不會塞成null
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
JamesDoge
iT邦高手 1 級 ‧ 2023-02-18 21:07:30

例如:

QueryParameter queryParameter = new QueryParameter();
queryParameter.select("table1.column1, table2.column2");
queryParameter.from("table1, table2");
queryParameter.join("table3 ON table1.column3 = table3.column3");
queryParameter.join("table4 ON table2.column4 = table4.column4");
queryParameter.where("table1.column5 = 'value1'");
queryParameter.orderBy("table2.column6 DESC");

如果需要設定更複雜的子查詢,可以使用括號把子查詢括起來,例如:

queryParameter.from("(SELECT * FROM table1 WHERE column1 = 'value1') t1, table2");
queryParameter.join("(SELECT * FROM table3 WHERE column3 = 'value3') t3 ON t1.column3 = t3.column3");

上面的例子中,使用括號把子查詢括起來,再使用別名 t1 和 t3 來代表這些子查詢,以便在後面的查詢中使用。

我要發表回答

立即登入回答