亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以使用JOOQ作為SQL解析器嗎?

我可以使用JOOQ作為SQL解析器嗎?

一只名叫tom的貓 2022-09-01 17:38:49
我正在嘗試在Java中解析SELECT語句。我熟悉JOOQ,并希望使用它。我知道它并沒有明確設計為SQL解析器 - 它實際上遠不止于此,所以我在想可能有一種方法可以使用其內部解析器來解析SELECT查詢。我看到了一些有關如何使用訪問者模式訪問JOOQ的某些內部信息,但我需要使用樹狀結構在查詢內部導航,該結構將允許單獨訪問查詢的每個部分。我不想在所有用例中使用訪客模式。這可能嗎?我該怎么做?
查看完整描述

2 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

是的,可以。jOOQ有一個可以使用的解析器

從 jOOQ 3.17 開始,有一個實驗模型 API 可用于在外部遍歷表達式樹,例如使用模式匹配,或在內部使用新的遍歷器 API。在將表達式樹呈現回 SQL 時,仍然可以使用 VisitListener 遍歷表達式樹。


查看完整回答
反對 回復 2022-09-01
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

完整的 SQL 解析器可從 DSLContext.parser() 和 DSLContext.parsingConnection() 獲得(請參閱手冊中有關解析后者連接的部分)。

SQL 解析 API 頁面給出了這個簡單示例:

ResultQuery<?> query = 
DSL.using(configuration)
   .parser()
   .parseResultQuery("SELECT * FROM (VALUES (1, 'a'), (2, 'b')) t(a, b)");

parseResultQuery是單個 SELECT 查詢所需的方法,如果可能有多個查詢,請使用 parse(String)。


查看完整回答
反對 回復 2022-09-01
  • 2 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號