类似与 select ... where info like '%?%'
这里的问号是不被看作是占位符的,所以当set的时候会报错java.sql.SQLException: Parameter index out of range如何不用sql语句的拼接解决这个问题
谢谢

解决方案 »

  1.   

    PreparedStatement pst = conn.prepareStatement("select ... where info like ?");pst.setString(1, "%"+name+"%");
      

  2.   

    PreparedStatement pst = conn.prepareStatement("select ... where info like ?");
    param= param+"?";
    pst.setString(1, "%"+param+"%");可以在setString之前构造你的字串,然后传入
      

  3.   

    PreparedStatement pst = conn.prepareStatement("select ... where info like ?");pst.setString(1, "%"+name+"%");上面的这个语句少写了单引号,正确地应当是PreparedStatement pst = conn.prepareStatement("select ... where info like ?");pst.setString(1, "'%"+name+"%'");
      

  4.   

    直接在PreparedStatement之前把语句保存到String里不是更方便么