jsp查询mysql,表名是变量,需要前段输入,怎么实现

如题。。。。写了一个下午就是因为表名是变量无法实现。。。。

 stmt = conn.createStatement();

  String sql="select * from "+table1+"where station='"+station1+"'";

    ResultSet rs = stmt.executeQuery(sql);
这样不能连接
但是
    String sql="select * from "+table1;
    String sql="select * from sql201307 where station='"+station1+"'";
这两条就可以。。。真是不明白

where前面是不是少了一个空格,你可以把sql打印出来看看是否为你期望的sql语句,对比一下就比较清楚

 String sql="select * from "+table1+" where station='"+station1+"'";

String sql="select * from "+table1+"where station='"+station1+"'";
改String sql="select * from "+table1+" where station='"+station1+"'";

StringBuffer sb=new StringBuffer("select * from ");

sb.append(table1);

sb.append("where station=");

sb.append(station1);

String sql=sb.toString();

应该是少了一个空格,把表名和where拼成一个字符串了。 debug看一下,或者输出一个sql语句。

where 前面没有空格,调整一下再提交,如果确实是String问题,再调整使用StringBuffer,拼好后toString