SQLParser的解析流程
2021-11-17 本文已影响0人
Britney_z
1、首先我们看看Token的类结构,再看看TokenType的继承关系


DefaultKeyword:例如select、update、delete、insert等
Literals:INT, FLOAT, HEX, CHARS, IDENTIFIER, VARIABLE,例如 表名就是IDENTIFIER
Symbol:>,<,=,. ,*等符号
2、例如我们执行个insert语句,看看解析流程,是怎么生成sqlToken的

看看InsertIntoClauseParser

TableReferencesClauseParser的parseTableFactor方法,解析出tableToken

我们看看InsertValuesClauseParser,设置 InsertValueToken

看看这个processGeneratedKey,找到自增长键,需要补的列,添加sqlToken,ItemsToken
