RT。本人现在拿到了一堆SQL语句,想把他们转化出来,分辨出哪些是列名,哪些是表名,哪些是判段条件。
如下:select id, name from employee where employee='jacky', 我要找出这个语句中的列名即: id 和 name, 再找出他的表名即:employee, 还有查询条件即:employee='jacky'.当然,不仅仅是select语句,还包括create,update, delete,execute。判断条件也相对来讲复杂些。之前有考虑过用正则表达式,但是写起来非常困难。要判断的条件太多了。在这里请教下各位大虾,有不有JAVA的开源工具来解析SQL语句呢。烦请点拨一下,不胜感激~
如下:select id, name from employee where employee='jacky', 我要找出这个语句中的列名即: id 和 name, 再找出他的表名即:employee, 还有查询条件即:employee='jacky'.当然,不仅仅是select语句,还包括create,update, delete,execute。判断条件也相对来讲复杂些。之前有考虑过用正则表达式,但是写起来非常困难。要判断的条件太多了。在这里请教下各位大虾,有不有JAVA的开源工具来解析SQL语句呢。烦请点拨一下,不胜感激~
你可以用其他的词法和语法分析器,这个和编译原理有关.
比较复杂.呵呵简单的解决方案就是用正则处理了.次之,用string
http://www.antlr.org/ANTLR, ANother Tool for Language Recognition,