这是我在DAO包中类的sql语句
select * from (select s.*,rownum rn from supplier s where s.suppliername like ? and s.supplierdescript like ?) t where t.rn>=(1) and t.rn<=121.当能获取到值时,怎么操作大家都懂,
2.当获取值为""或者为null时(之所有分为""和null,是因为有两种途径到达Servlet),就赋值为通配符%,这样的话就相当于什么都没输入直接查寻所有数据,没错吧,可问题是suppliername like % 这个条件无法匹配到suppliername=""的数据
很是郁闷!!!!这是我在DoListSupplierServlet.java中获取suppliername和supplierdescript做的判断:
             
                  //获取供应商名称
String suppliername=request.getParameter("suppliername");
if(suppliername=="" || suppliername==null){
suppliername="%";
}
suppliername="%"+suppliername+"%";
supplier.setSuppliername(suppliername);

//获取供应商描述
String supplierdescript=request.getParameter("supplierdescript");
if(supplierdescript=="" || supplierdescript==null){
supplierdescript="%";
}
supplierdescript="%"+supplierdescript+"%";
supplier.setSupplierdescript(supplierdescript);

//当supplier和pages这两个对象都设置值完毕后再查询当前页码下的供应商
list=biz.queryAllSupplier(supplier,pages);

解决方案 »

  1.   

    suppliername like % 这个条件确实无法匹配到suppliername=""的数据
    不才,额也想知道怎么写可以匹配suppliername=""
      

  2.   


    截取一段代码:
    sbsql.append("cbrand like ? or" +
         " cmodel like ? or" +
         " corigin like ? or" +
         " cproduce like ? or" +
         " cbuy like ? or" +
         " cpripal like ? or" +
         " cvolume like ? or" +
         " capac like ?");ps.setString(1, "%"+car.getCbrand()+"%");
    ps.setString(2, "%"+car.getCmodel()+"%");
    ps.setString(3, "%"+car.getCorigin()+"%");
    ps.setString(4, "%"+car.getCproduce()+"%");
    ps.setString(5, "%"+car.getCbuy()+"%");
    ps.setString(6, "%"+car.getCpripal()+"%");
    ps.setString(7, "%"+car.getCvolume()+"%");
    ps.setString(8, "%"+car.getCapac()+"%");