比如现在有5种sql语句 
(1) select * from student where id = '' 这种带条件或不带条件只截取表名(2) select id ,name,sex,year from student 这种只截取 选择的字段名和表名(3) select id as stu_id,name stu_name,sex form student 这种只截取选择字段名(如果有别名将截取字段的别名) 和表名(要考虑没有写as的情况)(4) select * from student as stu left join stuclass as stu_class 这种只截取表名不截取表的别名(要考虑没有写as的情况)(5) select stu.id as sid,stu_class.clasNo as clasNo from student as stu left join stuclass as stu_class  这种字段截取别名,表截取表名最后总结
如果sql语句选择的字段有别名将截取别名,否则截取字段名,*号不截取. 表名只截取表名,忽略表的别名.本人想用java正则表达式写,但不太会!还请各位路过的高手指点..
如果能有其他更好的方法(只要是java) 都行...jquery,javascript 也可以...

解决方案 »

  1.   

    高效的话,其实java的方法就很高效而且也易读(相对来讲)
    正则要写的很精细才能有不错的效率(不过效率问题也是要考虑到你的量,如果不大基本看不出来的)
      

  2.   

    问题已解决!
    其实根本不需要截取解决方法:
    使用这个类 --> import java.sql.ResultSetMetaData;
     
    ResultSetMetaData rsmd = null;
    try{
            rsmd = rs.getMetaData();
            column = rsmd.getColumnCount();
             /* 获得查询的列名 */
            column_name = new String[column];
           for (int i = 0; i < column; i++) {
               column_name[i] = rsmd.getColumnName(i + 1);
            }
    }
    这样便得到了所有查询的列名称同样里面也有获得表名的方法