1,概念
1) SQL 解析器
用于處理 SQL 查詢語句的解析和分析。
場景:
- 數據庫客戶端開發,解析用戶輸入的sql語法并執行。
- 自定義sql解析和執行邏輯。
標準的數據庫接口(如 JDBC)無法完全滿足需求時,自定義執行邏輯,以實現更復雜的功能。 - 實現數據庫查詢優化器
- 自定義SQL 分析工具
對大量的 SQL 查詢進行分析,以了解查詢的模式、性能瓶頸等 - 實現 SQL 注入檢測工具
解析用戶輸入的 SQL 查詢,并檢測其中是否包含潛在的注入漏洞。
2,jsqlparser
sql解析庫,收費:官網
將 SQL 語句解析為 Java 對象表示形式,使得可以輕松地對 SQL 進行分析、修改和生成。JSqlParser 支持多種 SQL 方言,包括 ANSI SQL、MySQL、Oracle 等。
3,druid
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
4,ANTLR(Another Tool for Language Recognition)
語言識別器生成器,可以用于構建解析器和編譯器。
5,Apache Calcite
開源的 SQL 解析、優化和查詢引擎。可以將 SQL 轉換為抽象語法樹(AST),從而進行進一步的查詢優化和執行計劃生成。
6,SQLJocky
主要用于與 MySQL 數據庫進行交互。