mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
Updated Druid_SQL_AST (markdown)
+33
-14
@@ -9,21 +9,13 @@ package com.alibaba.druid.sql.ast;
|
||||
interface SQLObject {}
|
||||
interface SQLExpr extends SQLObject {}
|
||||
interface SQLStatement extends SQLObject {}
|
||||
|
||||
interface SQLTableSource extends SQLObject {}
|
||||
class SQLSelect extends SQLObject {}
|
||||
class SQLSelectQueryBlock extends SQLObject {}
|
||||
```
|
||||
|
||||
## 2.1 常用的SQLStatemment
|
||||
最常用的Statement当然是SELECT/UPDATE/DELETE/INSERT,他们分别是
|
||||
```java
|
||||
package com.alibaba.druid.sql.ast.statement;
|
||||
|
||||
class SQLSelectStatement implements SQLStatement {}
|
||||
class SQLUpdateStatement implements SQLStatement {}
|
||||
class SQLDeleteStatement implements SQLStatement {}
|
||||
class SQLInsertStatement implements SQLStatement {}
|
||||
```
|
||||
|
||||
|
||||
## 2.2 常用的SQLExpr有哪些
|
||||
## 2.1 常用的SQLExpr有哪些
|
||||
```java
|
||||
package com.alibaba.druid.sql.ast.expr;
|
||||
|
||||
@@ -33,7 +25,9 @@ class SQLIdentifierExpr implements SQLExpr {}
|
||||
// A.ID = 3 这里的A.ID是一个SQLPropertyExpr
|
||||
class SQLPropertyExpr implements SQLExpr {}
|
||||
|
||||
// 比如 ID = 3 这是一个SQLBinaryOpExpr,left是ID (SQLIdentifierExpr),right是3 (SQLIntegerExpr)
|
||||
// 比如 ID = 3 这是一个SQLBinaryOpExpr
|
||||
// left是ID (SQLIdentifierExpr)
|
||||
// right是3 (SQLIntegerExpr)
|
||||
class SQLBinaryOpExpr implements SQLExpr {
|
||||
SQLExpr left;
|
||||
SQLExpr right;
|
||||
@@ -41,6 +35,31 @@ class SQLBinaryOpExpr implements SQLExpr {
|
||||
}
|
||||
```
|
||||
|
||||
## 2.2 常用的SQLStatemment
|
||||
最常用的Statement当然是SELECT/UPDATE/DELETE/INSERT,他们分别是
|
||||
```java
|
||||
package com.alibaba.druid.sql.ast.statement;
|
||||
|
||||
class SQLSelectStatement implements SQLStatement {
|
||||
SQLSelect select;
|
||||
}
|
||||
class SQLUpdateStatement implements SQLStatement {
|
||||
SQLExprTableSource tableSource;
|
||||
List<SQLUpdateSetItem> items;
|
||||
SQLExpr where;
|
||||
}
|
||||
class SQLDeleteStatement implements SQLStatement {
|
||||
SQLTableSource tableSource;
|
||||
SQLExpr where;
|
||||
}
|
||||
class SQLInsertStatement implements SQLStatement {
|
||||
SQLExprTableSource tableSource;
|
||||
List<SQLExpr> columns;
|
||||
SQLSelect query;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
# 3. 怎样产生AST
|
||||
|
||||
## 3.1 通过SQLUtils产生List<SQLStatement>
|
||||
|
||||
Reference in New Issue
Block a user