一般在页面做模糊查询的时候都会传回两个变量 type 和 keyword在用Statement的时候可以把SQL写成  sql="select * from abc where "+type +" like '%"+keyword+"'%"  然后执行在用PreparedStatement的时候应该怎么操作呢?

解决方案 »

  1.   

    PreparedStatement ps=con.prepareStatement("select * from abc where ? like '%?'%");
    ps.setString(1,type );
    ps.setString(2, keyword );
      

  2.   


    Java codePreparedStatement ps=con.prepareStatement("select * from abc where ? like '%?'%");
                ps.setString(1,type );
                ps.setString(2, keyword );
    试试
      

  3.   

    顶,这样可以防止sql注入攻击。
      

  4.   

    select * from abc where ? like '%?'%第一个问号能用么?问号只能插入值,不能插入sql语句吧.......
    所以第一个问号还是只能用拼接的方式。
      

  5.   


       PreparedStatement ps=con.prepareStatement("select * from abc where '"+type+"' like ?");
               
                ps.setString(1, "%"+keyword+"%" );