1、首先我们看看Token的类结构,再看看TokenType的继承关系
![](https://img.haomeiwen.com/i5072576/d20f98e125304026.png)
![](https://img.haomeiwen.com/i5072576/79dbbd2bb61d6eac.png)
DefaultKeyword:例如select、update、delete、insert等
Literals:INT, FLOAT, HEX, CHARS, IDENTIFIER, VARIABLE,例如 表名就是IDENTIFIER
Symbol:>,<,=,. ,*等符号
2、例如我们执行个insert语句,看看解析流程,是怎么生成sqlToken的
![](https://img.haomeiwen.com/i5072576/159f47bba6f99414.png)
看看InsertIntoClauseParser
![](https://img.haomeiwen.com/i5072576/7e8b0d8a4b1b4f37.png)
TableReferencesClauseParser的parseTableFactor方法,解析出tableToken
![](https://img.haomeiwen.com/i5072576/5734f454a768dbac.png)
我们看看InsertValuesClauseParser,设置 InsertValueToken
![](https://img.haomeiwen.com/i5072576/49aea61aed90e49d.png)
看看这个processGeneratedKey,找到自增长键,需要补的列,添加sqlToken,ItemsToken
![](https://img.haomeiwen.com/i5072576/973043c80a9e2e64.png)
网友评论