现需要实现以下功能:
1、根据用户输入的sql,如: select ename, dept, sal as "工资(人民币)" from emp,对sql进行解析,通过列表展现,如下:
2、根据上边的列表,用户选择了dept,和工资(人民币)两列,并设置求平均,需要形成图形,如下:
思路:
使用java实现,
第一步,可以通过jdbc提供的接口(ResultSetMetaData)获取列名,查出数据没有问题。
第二部,根据用户的选择需要对用户输入的sql进行包装,包装后的sql应该为:
select dept, avg("工资(人民币)") from (select ename, dept, sal as "工资(人民币)" from emp) group by dept ;
问题来了,由于第一步通过jdbc接口获取的sql的原信息的列名为"工资(人民币)",未带有双引号,所以在包装sql的时候不能确定外层引用的列名需不需要带双引号,由于oracle的别名带有双引号或者不带都可以,而通过jdbc ResultSetMetaData.getColumnLabel接口获取的列名都不带双引号,所以不知道怎么处理了,求处理方案!!!