首先阅读一下ANTLR4(ANother Tool for Language Recognition)官网,ANTLR 4 是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件,比如mysql等一些查用的语法可在https://github.com/antlr/grammars-v4查看;方便自己查看;公众号:帽爹的技术轮子

    ANTLR4分词法分析器与语法分析器

  • 词法分析器将输入数据解析为词(Token)
  • 语法解析器将词解析为抽象语法树(AST)
  1. 环境搭建

    #OS X
    $ cd /usr/local/lib
    $ sudo curl -O https://www.antlr.org/download/antlr-4.7.2-complete.jar#编辑~/.bash_profile文件添加环境变量
    $ vim ~/.bash_profileexport CLASSPATH=".:/usr/local/lib/antlr-4.7.2-complete.jar:$CLASSPATH"
    alias antlr4='java -jar /usr/local/lib/antlr-4.7.2-complete.jar'
    alias grun='java org.antlr.v4.gui.TestRig'
    $ source ~/.bash_profile#测试antlr是否配置成功
    $ antlr4
    $ 
  2. ANTLR开发流程
    1)定义 .g4 语法文件;
    2)使用 ANTLR 4 生成词法分析器(Lexer)和语法分析器(Parser)目标编程语言代码,支持的编程语言:Java、JavaScript、Python、C 和 C++ 等;
    3)遍历 AST(Abstract Syntax Tree 抽象语法树),ANTLR 4 支持两种模式:访问者模式(Visitor)和监听器模式(Listener)
  3. idea插件安装antlr,使用插件解析ss中msql的g4文件,如图:
  4. Maven插件

    在工程 src/main 路径下新建目录 antlr4
    然后,新建包路径为 src/main/antlr4/imports/mysql,存放 .g4 文件

    编辑 pom.xml 文件,添加插件:

    <plugin>  <groupId>org.antlr</groupId><artifactId>antlr4-maven-plugin</artifactId><version>4.3</version><executions><execution><id>antlr</id><configuration><libDirectory>src/main/antlr4/imports/mysql/</libDirectory><listener>false</listener><visitor>false</visitor></configuration><goals><goal>antlr4</goal></goals></execution></executions>
    </plugin> 
    #编译
    mvn clean compile -DskipTests
    

插件会为 src/main/antlr4 下的 .g4 文件在 target/generated-sources/antlr4 目录下生成对应的代码

转载于:https://my.oschina.net/u/3180962/blog/3099096

sharding-jdbc学习antlr4相关推荐

  1. 【MySQL 读写分离】Sharding JDBC + Spring boot 实现数据库读写分离的登录 Demo

    上篇文章我们搭建了 MySQL 数据库主从复制集群 MySQL 搭建主从复制集群~~~ 本篇文章我们利用搭建好的主从复制集群,使用 SpringBoot 结合 Sharding-JDBC 搭建一个小的 ...

  2. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  3. JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  4. JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  5. Spring boot项目集成Sharding Jdbc

    环境 jdk:1.8 framework: spring boot, sharding jdbc database: MySQL 搭建步骤 在pom 中加入sharding 依赖 <depend ...

  6. JDBC 学习笔记(一)—— 基础知识 + 分页技术

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  7. Spring boot + Sharding JDBC 分库分表 及 分布式事务处理

    Sharding JDBC 基础概念 Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC.Proxy 和 Sidecar(规划中)这 3 款既能够 ...

  8. JDBC学习笔记——Java语言与数据库的鹊桥

    JDBC学习笔记--Java语言与数据库的鹊桥     JDBC(Java DataBase Connectivity):SUN公司提供的 一套操作数据库的标准规范,说白了就是用Java语言来操作数据 ...

  9. JDBC学习笔记(1)---B站尚硅谷宋红康

    JDBC学习笔记(1)-B站尚硅谷宋红康 JDBC学习笔记(2)-B站尚硅谷宋红康 文章目录 软件架构方式介绍 JavaWeb技术概览 第1章:JDBC概述 1.1 数据的持久化 1.2 Java中的 ...

  10. Sharding JDBC(四) 分片策略一:标准分片策略StandardShardingStrategy

    目录 一.标准分片策略StandardShardingStrategy 二.StandardShardingStrategy配置实现 分库分表最核心的两点SQL 路由  . SQL 改写 applic ...

最新文章

  1. tensorflow算法实战:普通的数据训练和迁移学习之后的数据训练进行图像的识别(包括前端页面)
  2. 替换Android系统镜像system.img的方法
  3. 解决 macOS 下HTTP请求访问本地服务被阻塞5秒钟的问题
  4. 算法讲解 -- 区间dp经典模型与优化(石子归并)
  5. AngularJs的UI组件ui-Bootstrap分享(七)——Buttons和Dropdown
  6. python flask api部署_使用flask开发api——部署flask,使用gunicorn+gevent模式的http server...
  7. 完成一个简单的时间片轮转多道程序内核代码
  8. C语言从入门到精通保姆级教程(2021版上)
  9. DAX函数十大分类及示例
  10. 计算机键盘pausebreak,键盘PauseBreak键作用
  11. 微信小助手:专为mac微信3.1.0发行!支持发朋友圈!支持僵尸粉清理
  12. file-saver blob前端导出excel文件
  13. PHP Imagick发光文字
  14. CentOS 6.5 安装使用iscsi-initiator
  15. android集成友盟u app,友盟U-Mini小程序集成指南
  16. redolog 、undolog 和binlog
  17. 61二次型—— 化二次型为标准形、矩阵的合同变换求二次型的标准形
  18. android chrome72,Chrome 72正式版发布
  19. 程序员必须要掌握哪些语言
  20. 实时分割网络(持续更新)

热门文章

  1. 基于Python的高校勤工俭学工资管理系统——实现对excel表格的数据操作(xwlings库)
  2. 9.03 Every Day English
  3. 【解读】关于国务院取消计算机信息系统集成企业资质认定和项目经理人员资质评定的解读
  4. 安卓 元素渲染(类似v-for)
  5. 基于pygame的消消乐小游戏开发
  6. android 悬浮窗 miui,MIUI显示悬浮窗
  7. 2018TOP100峰会案例征集启动| 共同见证100+精选技术案例的诞生
  8. 【学习笔记】JavaWeb入门篇—HTML
  9. Microsoft Visual C++ 2015 Redistributable无msi卸载方法
  10. 为IDEA设置背景图片