用正则从sql语句中能取出所有列名吗? 对于非合计的列,取出来倒是很简单,但有合计函数的我不知怎么写了。如:SELECT NVL(SUM(SALARY), 0) SALARYSUM, COUNT(DISTINCT(USERID)) USER_CNT FROM USER_INFO 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用“\s*(\S+)\s*,(.*FROM)”与sql匹配,匹上了就提取出group(1),然后sql=group(2)继续提取,直到匹不上,最后用“\s*(\S+)\s*FROM”把最有一列提取出来,逻辑就是这个逻辑,如果你不能保证sql里FROM都是大写的话,自己或一下吧。 用正则是科班做法,如果你只要实现功能 加个where 1=2 直接给数据库,从数据库数据字典中查,或者返回的源数据信息去查。 在stackoverflow上问了,基本都说正则做不到,我觉得也是,还是得用个sql parser,不过我的语句是带有ibatis格式的参数,不知可否,等研究出结果再来更新一下。 找了个商业版的parser, general sql parser for java,挺好用的,官网有取列名的例子,有#这样的参数标记也不影响,试用90天,够我用了。 在iteye写了个bloghttp://theoffspring.iteye.com/admin/blogs/1442316 救命 这么简单的代码 运行错误,哪里错了 接口能不能有构造方法? 急!Java控件集成问题 面向对象问题 java学习交流群 16918020 欢迎大家参与.有经验的,70年代的优先,呵呵 有谁知道怎么在JComboBox中加图片吗? 一个面试题的java解决算法 structs有没这方面详细的介绍 java 可以用 defautl 吗?象C++,或object pascal 那样 有人知道KJAVA是什么意思吗? 用java编一个课程表,但是要用命令行实现增、删、改、查、显示 计算器
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货