首页 > 数据库技术 > 详细

anltr 解析MYSQL

时间:2021-08-11 09:44:34      阅读:35      评论:0      收藏:0      [点我收藏+]
String sql = "select a as c,b as s,‘zhange‘ F, 1/5 as e from t_order";

        final MysqlQueryLexer mySqlLexer = new MysqlQueryLexer(CharStreams.fromString(sql));

        final CommonTokenStream commonTokenStream = new CommonTokenStream(mySqlLexer);

        final MysqlQueryParser mySqlParser = new MysqlQueryParser(commonTokenStream);

        mySqlParser.addParseListener(new MysqlQueryBaseListener());

        final MysqlQueryParser.SelectStatementContext selectStatementContext = mySqlParser.selectStatement();
        for (ParseTree child : selectStatementContext.children) {
            if (child instanceof MysqlQueryParser.SelectElementsContext) {
                List<ParseTree>  columnElementContextList = ((MysqlQueryParser.SelectElementsContext) child).children;
                for (int i = 0; i < columnElementContextList.size(); i++) {
                    ParseTree tree = columnElementContextList.get(i);
                    if (tree instanceof MysqlQueryParser.SelectColumnElementContext) {
                        MysqlQueryParser.SelectColumnElementContext columnElementContext = (MysqlQueryParser.SelectColumnElementContext) tree;
                        System.out.println(columnElementContext.fullColumnName());
                        System.out.println(columnElementContext.start.getText() + "----------" + columnElementContext.start.getType());
                        System.out.println(columnElementContext.stop.getText());
                    }
                }
            }
            System.out.println(child.getText() + "------"  );

        }

anltr 解析MYSQL

原文:https://www.cnblogs.com/masterZ/p/15126424.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!