如何将sql脚本转化成JAVA结构

时间:2020-12-19 14:47:16
RT。本人现在拿到了一堆SQL语句,想把他们转化出来,分辨出哪些是列名,哪些是表名,哪些是判段条件。
如下:select id, name from employee where employee='jacky', 我要找出这个语句中的列名即: id 和 name, 再找出他的表名即:employee, 还有查询条件即:employee='jacky'.当然,不仅仅是select语句,还包括create,update, delete,execute。判断条件也相对来讲复杂些。之前有考虑过用正则表达式,但是写起来非常困难。要判断的条件太多了。在这里请教下各位大虾,有不有JAVA的开源工具来解析SQL语句呢。烦请点拨一下,不胜感激~

7 个解决方案

#1


自己写。IReport里面有相应的源码.

#2


把这条sql语句当成一个字符串嘛,就用String类的一些方法来判断

1、根据关键字来查找并判断,比如select create 啊,如果是select开头,就再判断跟下一个关键字之间的字符串,比如是否有点啊,逗号啊之类的

说到这里应该明白了吧

#3


参考ibatis解析sqlmap的方式

#4


hibernate也有hql解析的.底层用的是atrl
你可以用其他的词法和语法分析器,这个和编译原理有关.
比较复杂.呵呵

简单的解决方案就是用正则处理了.

次之,用string

#5


错了...呵呵
http://www.antlr.org/

ANTLR, ANother Tool for Language Recognition,

#6


javacc

#7


用STRING 是不是方法太笨了啊。。

#1


自己写。IReport里面有相应的源码.

#2


把这条sql语句当成一个字符串嘛,就用String类的一些方法来判断

1、根据关键字来查找并判断,比如select create 啊,如果是select开头,就再判断跟下一个关键字之间的字符串,比如是否有点啊,逗号啊之类的

说到这里应该明白了吧

#3


参考ibatis解析sqlmap的方式

#4


hibernate也有hql解析的.底层用的是atrl
你可以用其他的词法和语法分析器,这个和编译原理有关.
比较复杂.呵呵

简单的解决方案就是用正则处理了.

次之,用string

#5


错了...呵呵
http://www.antlr.org/

ANTLR, ANother Tool for Language Recognition,

#6


javacc

#7


用STRING 是不是方法太笨了啊。。