91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Java中如何解析、格式化、生成SQL語句?

jf_ro2CN3Fa ? 來源:芋道源碼 ? 2023-04-10 11:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

JSqlParser

昨天在群里看到有小伙伴問,Java里如何解析SQL語句然后格式化SQL,是否有現成類庫可以使用?

之前TJ沒有做過這類需求,所以去研究了一下,并找到了一個不過的解決方案,今天推薦給大家,如果您正要做類似內容,那就拿來試試,如果暫時沒需求,就先了解收藏(技多不壓身)。

JSqlParser

JSqlParser是一個用Java編寫的SQL解析器,可以將SQL語句解析為Java對象,從而使開發人員能夠輕松地分析、修改和重構SQL查詢。

比如,這樣的一句SQL語句SELECT 1 FROM dual WHERE a = bSELECT 1 FROM dual WHERE a = b

JSqlParser可以將其解析為如下對象結構

SQLText
└─Statements:net.sf.jsqlparser.statement.select.Select
└─selectBody:net.sf.jsqlparser.statement.select.PlainSelect
├─selectItems->Collection
│└─selectItems:net.sf.jsqlparser.statement.select.SelectExpressionItem
│└─LongValue:1
├─Table:dual
└─where:net.sf.jsqlparser.expression.operators.relational.EqualsTo
├─Column:a
└─Column:b

然后我們就可以通過其提供的API來訪問這句SQL語句中的各個要素:

Statementstatement=CCJSqlParserUtil.parse(sqlStr);
if(statementinstanceofSelect){
Selectselect=(Select)statement;
PlainSelectplainSelect=(PlainSelect)select.getSelectBody();

SelectExpressionItemselectExpressionItem=
(SelectExpressionItem)plainSelect.getSelectItems().get(0);

Tabletable=(Table)plainSelect.getFromItem();

EqualsToequalsTo=(EqualsTo)plainSelect.getWhere();
Columna=(Column)equalsTo.getLeftExpression();
Columnb=(Column)equalsTo.getRightExpression();
}

目前,JSqlParser支持了大部分主要的關系型數據庫,包括:

Oracle

MS SQL Server and Sybase

PostgreSQL

MySQL and MariaDB

DB2

H2 and HSQLDB and Derby

SQLite

它支持大多數常見的SQL語法,包括SELECT、INSERT、UPDATE、DELETE等。除了解析SQL語句外,JSqlParser還提供了一些有用的功能,例如格式化SQL語句、生成SQL查詢等。此外,JSqlParser還可以與其他Java庫和框架集成,例如Hibernate、Spring等。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2989

    瀏覽量

    109972
  • 格式化
    +關注

    關注

    2

    文章

    39

    瀏覽量

    9358
  • SQL
    SQL
    +關注

    關注

    1

    文章

    783

    瀏覽量

    45183
  • 數據庫
    +關注

    關注

    7

    文章

    3929

    瀏覽量

    66298

原文標題:Java中如何解析、格式化、生成SQL語句?

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    U盤在windows無法格式化何解

    U盤在windows無法格式化何解決嘗試一:殺毒排查,無毒嘗試二:當然是本機格式化,無效嘗試三:DOS下format,提示出現錯誤,無效嘗試四:到管理工具--計算機管理---磁盤管理下找優盤盤符
    發表于 05-20 17:37

    SQL語句生成

    SQL語句生成SQL數據庫語句生成及分析器(支持表結構、索引、所有記錄到
    發表于 06-12 16:15

    何解決bitlockerU盤 格式化

    SanDis U盤 128G,沒有物理保護鍵,設置了bitlocker,知道密碼,可以正常讀取,無法編輯,Windows下無法使用格式化,磁盤工具檢查修復無法運行,我的電腦右鍵管理磁盤工具無法
    發表于 10-28 21:08

    格式化硬盤

    格式化硬盤 軟盤只需要一次格式化,硬盤卻需要兩級,即低級格式化和高級格式化。  硬盤的低級格式化在每個磁片上劃分
    發表于 12-25 15:40 ?1144次閱讀

    筆記本硬盤維護之格式化

    筆記本硬盤維護之格式化篇   格式化硬盤(并非低格)會影響硬盤壽命嗎?用Windows對硬盤進行格式化與對軟盤進行格式化原理一樣
    發表于 01-20 10:32 ?410次閱讀

    筆記本硬盤格式化幾點須知

    筆記本硬盤格式化幾點須知  格式化硬盤(并非低格)會影響硬盤壽命嗎?用Windows對硬盤進行格式化與對軟盤進行格式化原理一樣嗎?
    發表于 01-23 14:15 ?743次閱讀

    如何格式化硬盤

    如何格式化硬盤    這是廣大電腦初學者經常詢問的問題,因為格式化硬盤是安裝裝系統的前提,所以這就成為了需要首先解決的問題,本文將針這個
    發表于 02-24 11:25 ?574次閱讀

    格式化對硬盤有傷害嗎_硬盤格式化后數據還能恢復嗎

    普通的格式化硬盤是不會影響硬盤壽命的。硬盤格式化后數據還能恢復嗎?下面就來看看使用強力數據是如何將格式化后的數據給恢復的吧。
    發表于 12-14 16:09 ?1.7w次閱讀

    java生成json格式數據 和 java遍歷json格式數據

    本文檔內容介紹了基于java生成json格式數據 和 java遍歷json格式數據,供參考
    發表于 03-19 15:04 ?0次下載

    格式化是什么

    格式化(format)是指對磁盤或磁盤的分區(partition)進行初始的一種操作,這種操作通常會導致現有的磁盤或分區中所有的文件被清除。格式化通常分為低級
    的頭像 發表于 01-09 15:20 ?8.7w次閱讀

    D盤無法格式化的解決方法分享

    電腦的使用windows7系統過程,發現電腦磁盤的有一些不需要的文件想直接格式化,由于自己的電腦D盤太亂,想要格式化D盤。
    的頭像 發表于 08-10 16:25 ?5763次閱讀
    D盤無法<b class='flag-5'>格式化</b>的解決方法分享

    python字符串格式化

    python字符串格式化 格式化輸出,主要有三種方式 使用 % 進行格式化 使用 format 函數進行格式化 使用 f-string 進行格式化
    的頭像 發表于 02-21 16:28 ?1867次閱讀
    python字符串<b class='flag-5'>格式化</b>

    數據庫數據恢復-數據庫文件被刪除/分區被格式化SQL SERVER數據恢復方案

    數據庫數據恢復-數據庫文件被刪除/分區被格式化SQL SERVER數據恢復方案
    的頭像 發表于 09-21 14:34 ?1124次閱讀

    如何使用 Java 原生格式化Instant

    今天我們將聊聊如何在Java把一個 Instant 格式化為一個字符串。我們將展示如何使用 Java 原生和第三方庫(如Joda-Time)來處理這個事情。 使用
    的頭像 發表于 10-09 14:51 ?1662次閱讀

    oracle執行sql查詢語句的步驟是什么

    Oracle數據庫是一種常用的關系型數據庫管理系統,具有強大的SQL查詢功能。Oracle執行SQL查詢語句的步驟包括編寫SQL語句
    的頭像 發表于 12-06 10:49 ?1363次閱讀
    主站蜘蛛池模板: 国产呦精品系列在线 | 欧美成人三级伦在线观看 | a级午夜毛片免费一区二区 a看片 | 四虎最新永久在线精品免费 | 老司机亚洲精品影院在线观看 | 四虎国产精品成人永久免费影视 | 2021日本三级理论影院 | 婷婷亚洲五月 | 亚洲成年人影院 | 精品一区二区三区自拍图片区 | 国产精品久久久久久久久免费观看 | bt种子天堂 | 激情亚洲综合网 | 天天狠狠弄夜夜狠狠躁·太爽了 | 手机看高清特黄a大片 | 特黄特色大片免费播放器9 特黄特色大片免费视频播放 | 国产综合在线播放 | 久久精品第一页 | 日本s色大片在线观看 | 国产成人av在线 | 综综综综合网 | 51国产午夜精品免费视频 | 99国产福利| 色噜噜狠狠狠色综合久 | 国产成人v爽在线免播放观看 | 婷婷国产| 美日韩一区二区 | 国产成人av在线 | 亚洲影视自拍揄拍愉拍 | 亚洲插 | 久久夜色精品国产尤物 | 色精品一区二区三区 | 涩涩涩综合在线亚洲第一 | 亚洲午夜精品久久久久久人妖 | 一级黄a| 美女扒开尿口给男人看的让 | 天天更新影院 | 国产乱码1卡一卡二卡 | 57pao成人永久免费视频 | 欧美黑粗硬 | 大香线蕉97久久 |