java分析SQL语句? 表都起别名的话就比较简单x。字段你可以搜索。x是那个表的别名,否则需要利用java.sql.ResultSet的元数据rs.getMetaData() 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有别名当然是很简单。难点在于没有别名的情况,特别是含有一些临时表SQL语句。至于你说的rs.getMetaData()根本是不符合我的需求的:第一:它要先执行一边SQL语句,才能有个结果集rs;第二:它只是从结果集中获得结果集的列等等结构,不是我要的-------------------------------------------------------------------再次说明:我所希望的是在SQL语句执行之前,就用某种算法先对它进行一次“分析”,搞清楚这条SQL语句中使用到的字段分别是来自这条SQL语句中用到的哪张具体表最简单的例子:表A有字段a_id, name, re表B有字段b_id, gender, re对于 select gender from (select * from A inner join B on a_id = b_id) tmp where tmp.a_id = '1'要能分析出这条SQL中的 gender 字段来自 B表 a_id 字段来自 A表 b_id 字段来自 B表 tmp.a_id 字段最终实际来自 A表 第二:它只是从结果集中获得结果集的列等等结构,不是我要的 在执行sql之前,先分别执行查from 后面的n个表的sql,分别取得rs构建数据结构,我是这个意思,否则无法做到,我有x个理由可以推翻你先不预查就判断出来的想法。一个比较可行的方案是事先把所有的表查一遍取得分析元数据,放到一个比较好的数据结构,然后每次分析sql的时候去数据结构中查找分析判断。 ssh整合错误:Unable to load configuration. - [unknown location] Hibernate load和clear 只用Spring能实现JMS吗? hibernate 主外键插入问题 Struts2的select标签无法从jsp页面取值 struts问题,用户登录提交后错误返回来的样式全变了 问一个小sql语句 有个字符串LoginID='zzz'@@type='00',如何取出zzz和00 讨论一下大家对于Java中进程间通信采取的处理方式 QueryRule怎么用? 斑竹,给我个jsp文件上传的例子,带进度条的 jsp 监听器 空指针异常??
至于你说的rs.getMetaData()根本是不符合我的需求的:第一:它要先执行一边SQL语句,才能有个结果集rs;第二:它只是从结果集中获得结果集的列等等结构,不是我要的-------------------------------------------------------------------
再次说明:我所希望的是在SQL语句执行之前,就用某种算法先对它进行一次“分析”,搞清楚这条SQL语句中使用到的字段分别是来自这条SQL语句中用到的哪张具体表最简单的例子:
表A有字段a_id, name, re
表B有字段b_id, gender, re对于 select gender from (select * from A inner join B on a_id = b_id) tmp where tmp.a_id = '1'要能分析出这条SQL中的
gender 字段来自 B表
a_id 字段来自 A表
b_id 字段来自 B表
tmp.a_id 字段最终实际来自 A表
一个比较可行的方案是事先把所有的表查一遍取得分析元数据,放到一个比较好的数据结构,然后每次分析sql的时候去数据结构中查找分析判断。