Atitit jpql ast总结v2 t025.docx
目录
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| -[IDENT] Node: 'u5b57u6bb53'
-[WHERE] Node: 'where'
-[EQ] Node: '='
+-[IDENT] Node: 'u5b57u6bb51'
-[NUM_INT] Node: '123'
SELECT * FROM 字段3 WHERE 字段1 = 123
-
- 多个and条件 (ok)
- Select 字段函数(聚合等)
- [ORDER BY 子句] 排序
jpql = "select a,b from 表格1 where c=123 and d =456 order by c1 desc ,c2 ,c3 desc";
多个orderby
-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
+-[DESCENDING] Node: 'desc'
+-[IDENT] Node: 'c2'
+-[IDENT] Node: 'c3'
-[DESCENDING] Node: 'desc'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| -[IDENT] Node: 'u5b57u6bb53'
+-[WHERE] Node: 'where'
| -[EQ] Node: '='
| +-[IDENT] Node: 'u5b57u6bb51'
| -[NUM_INT] Node: '123'
-[ORDER] Node: 'order'
-[IDENT] Node: 'c1'
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| -[IDENT] Node: 'u5b57u6bb53'
+-[WHERE] Node: 'where'
| -[EQ] Node: '='
| +-[IDENT] Node: 'u5b57u6bb51'
| -[NUM_INT] Node: '123'
-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
-[DESCENDING] Node: 'desc'
直接后面耕者mysql 翻页表达式得了
System.out.println(JqplUtil.Jqpl2sql(hql,"limit 1"));
其中IN中指定的,就是群集成员路径表示,而>、<、AND、IN、LIKE等都是WHERE子句中条件表示式,简单列出一些条件表示式如下:
比较陈述 | =、>、>=、<、<=、<> |
BETWEEN 陈述 | [NOT BETWEEN |
LIKE 陈述 | [NOT] LIKE |
IN 陈述 | [NOT] IN |
NULL 陈述 | IS [NOT] NULL |
EMPTY 陈述 | IS [NOT] EMPTY |
EXISTS 陈述 | [NOT] EXISTS |
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| +-[IDENT] Node: 'u5b57u6bb53'
| +-[AS] Node: 'as'
| | +-[AGGREGATE] Node: 'sum'
| | | -[IDENT] Node: 'id'
| | -[IDENT] Node: 'idAlias1'
| +-[AS] Node: 'as'
| | +-[METHOD_CALL] Node: '('
| | | +-[IDENT] Node: 'kk'
| | | -[EXPR_LIST] Node: 'exprList'
| | | -[NUM_INT] Node: '5'
| | -[IDENT] Node: 'alias2'
| -[COUNT] Node: 'count'
| -[ROW_STAR] Node: '*'
+-[WHERE] Node: 'where'
| -[EQ] Node: '='
| +-[IDENT] Node: 'u5b57u6bb51'
| -[NUM_INT] Node: '123'
-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
-[DESCENDING] Node: 'desc'
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| +-[IDENT] Node: 'u5b57u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | -[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[METHOD_CALL] Node: '('
| | | +-[IDENT] Node: 'kk'
| | | -[EXPR_LIST] Node: 'exprList'
| | | -[NUM_INT] Node: '5'
| | -[IDENT] Node: 'alias2'
| -[COUNT] Node: 'count'
| -[ROW_STAR] Node: '*'
+-[WHERE] Node: 'where'
| -[EQ] Node: '='
| +-[IDENT] Node: 'u5b57u6bb51'
| -[NUM_INT] Node: '123'
-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
-[DESCENDING] Node: 'desc'
Exception in thread "main" java.lang.ClassCastExcepti
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| -[AGGREGATE] Node: 'sum'
| -[IDENT] Node: 'u6570u91cf'
-[WHERE] Node: 'where'
-[EQ] Node: '='
+-[IDENT] Node: 'u5b57u6bb51'
-[NUM_INT] Node: '123'
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| +-[IDENT] Node: 'u5b57u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | -[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[METHOD_CALL] Node: '('
| | | +-[IDENT] Node: 'kk'
| | | -[EXPR_LIST] Node: 'exprList'
| | | -[NUM_INT] Node: '5'
| | -[IDENT] Node: 'alias2'
| -[COUNT] Node: 'count'
| -[ROW_STAR] Node: '*'
+-[WHERE] Node: 'where'
| -[EQ] Node: '='
| +-[IDENT] Node: 'u5b57u6bb51'
| -[NUM_INT] Node: '123'
-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
-[DESCENDING] Node: 'desc'
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| +-[IDENT] Node: 'u5b57u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | -[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[COUNT] Node: 'count'
| | | -[ROW_STAR] Node: '*'
| | -[IDENT] Node: 'cntAlias'
| -[AS] Node: 'as'
| +-[METHOD_CALL] Node: '('
| | +-[IDENT] Node: 'Udf'
| | -[EXPR_LIST] Node: 'exprList'
| | -[IDENT] Node: 'c11'
| -[IDENT] Node: 'udfC11As'
+-[WHERE] Node: 'where'
| -[EQ] Node: '='
| +-[IDENT] Node: 'u5b57u6bb51'
| -[NUM_INT] Node: '123'
-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
-[DESCENDING] Node: 'desc'
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| +-[IDENT] Node: 'u5b57u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | -[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[COUNT] Node: 'count'
| | | -[ROW_STAR] Node: '*'
| | -[IDENT] Node: 'cntAlias'
| -[METHOD_CALL] Node: '('
| +-[IDENT] Node: 'Udf'
| -[EXPR_LIST] Node: 'exprList'
| -[IDENT] Node: 'c11'
+-[WHERE] Node: 'where'
| -[EQ] Node: '='
| +-[IDENT] Node: 'u5b57u6bb51'
| -[NUM_INT] Node: '123'
-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
-[DESCENDING] Node: 'desc'
Dbg
-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
| +-[FROM] Node: 'from'
| | -[RANGE] Node: 'RANGE'
| | -[IDENT] Node: 'u8868u683c1'
| -[SELECT] Node: 'select'
| +-[IDENT] Node: 'u5b57u6bb52'
| +-[IDENT] Node: 'u5b57u6bb53'
| +-[AGGREGATE] Node: 'sum'
| | -[IDENT] Node: 'id'
| +-[AS] Node: 'as'
| | +-[COUNT] Node: 'count'
| | | -[ROW_STAR] Node: '*'
| | -[IDENT] Node: 'cntAlias'
| -[METHOD_CALL] Node: '('
| +-[IDENT] Node: 'Udf'
| -[EXPR_LIST] Node: 'exprList'
| -[IDENT] Node: 'c11'
+-[WHERE] Node: 'where'
| -[EQ] Node: '='
| +-[IDENT] Node: 'u5b57u6bb51'
| -[NUM_INT] Node: '123'
-[ORDER] Node: 'order'
+-[IDENT] Node: 'c1'
-[DESCENDING] Node: 'desc'
Atitit 不错的ql选型 jpql
Atitit 常见数据查询语言 GraphQL sql