基于druid的MySQL Compound Statements转pgplsql 大概思路
来源:http://www.tudoupe.com时间:2022-02-25
首先搭好java环境,把druid导入lib中,
我是基于vsc开发的,配好java环境以后把官方的druid-1.2.8.jar放到开发目录/lib下,vsc就能自动将其加入依赖库中,
以下代码可以测试MySqlStatementParser的主要功能:(代码源于官方测试代码MySqlPerfTest.java)
(在开发目录下的test.java)
通过调试我们可以发现,变量statement里面存储的就是一颗AST树,这样就可以很方便的帮助我们定位不同语句所对应的对象是什么。
整个程序的逻辑就是"MySQL Compound Statements" --> “AST” --> “MySQL Compound Statements”,
其中"MySQL Compound Statements" --> “AST” 是通过MySqlStatementParser()实现的,
“AST” --> “MySQL Compound Statements” 是通过MySqlOutputVisitor来实现的,
可以发现MySqlOutputVisitor里是通过visit()函数解析AST中的每一个对象来进行转换的,
我们思路就是通过继承MySqlOutputVisitor类,重载里面的visit()函数,实现 “AST” --> “pgplsql”,
这样只需要将上面的程序中的MySqlOutputVisitor(out)改为你继承重写了的OutputVisitor(out),即可完成转化。
我们要主要看的就是MySqlOutputVisitor这个对象里的所有visit()函数,理解不同的visit()是在干嘛,并将其重载,使得其输出变为pgplsql语言,
这里我简单写了个MySql2PgplSqlOutputVisitor的示例,里面简单的重载了几个visit()函数
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
