用正则从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实现定时扫描文件夹? 关于正则表达式的问题... windows上怎么设置默认的swing的LAF?(J2SE1.6) 为什么ObjectInputStream要放在ObjectOutputStream之后? Socket异步通讯时分页读取的问题 Applet打包成jar的问题 还是焦头烂额的APPLET,在MS的1.1的JVM中,我要画带坐标带小数的线,怎么办??? 初级问题 java中函数如何把String数组做为参数传递呀! 缺少com.ibm.ejs.包,请帮忙找一下,能解决者,答谢分100。另开帖。(急,在线等) 用java编一个课程表,但是要用命令行实现增、删、改、查、显示 计算器
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货