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

解决方案 »

  1.   

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

  2.   

    把这条sql语句当成一个字符串嘛,就用String类的一些方法来判断1、根据关键字来查找并判断,比如select create 啊,如果是select开头,就再判断跟下一个关键字之间的字符串,比如是否有点啊,逗号啊之类的说到这里应该明白了吧
      

  3.   

    hibernate也有hql解析的.底层用的是atrl
    你可以用其他的词法和语法分析器,这个和编译原理有关.
    比较复杂.呵呵简单的解决方案就是用正则处理了.次之,用string
      

  4.   

    错了...呵呵
    http://www.antlr.org/ANTLR, ANother Tool for Language Recognition,
      

  5.   

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