String sql = "SELECT * FROM ATABLE WHERE ?=?;";
statement = connection.prepareCall(sql);
statement.setXXX(1, "XXX");
statement.setXXX(2, "XXX");
statement.executeUpdate();

解决方案 »

  1.   

    String sql = "SELECT * FROM ATABLE WHERE ?=?;";
    statement = connection.prepareStatement(sql);
    statement.setXXX(1, "XXX");
    statement.setXXX(2, "XXX");
    statement.executeUpdate();
      

  2.   

    String sql = "SELECT * FROM ATABLE WHERE " + name + "=?;";
    statement = connection.prepareStatement(sql);
    statement.setXXX(1, "XXX");
      

  3.   

    嗯,我绕过这个问题了,谢谢各位大哥,还有一个问题,能不能如果用户没有输入name查询值,就取消这个条件啊?
      

  4.   

    String sql = "SELECT * FROM ATABLE ";
    String filter = "";
    如果输入name
    if (filter != "") {
    filter = " and name = ? ";
    } else {
    filter = " where name = ? ";
    }
    statement = connection.prepareStatement(sql + filter);
      

  5.   

    我的意思是prepareStatement已经写好了,能不能把条件取消?
      

  6.   

    嗯,是啊,但是如果不是string型的呢,算了,是我的想法不对头,prepareStatement功能实在是有限,我想这样做算了:String s = 'SELECT * FROM ATABLE WHERE ? AND ?'
    然后传一个vector进去,用vector把?替换掉,但是有个问题,我如何区分我本意的?和出现在其他string条件中的‘xxx?xxx’呢?例如:
    SELECT * FROM ATABLE where ?and ?and attr3='who am i?',谢谢各位大哥,请再帮我想想办法。