我的dao里面有个查询方法,代码如下:
public  List<HouseBean> searchHouseDesc(String paraValue){
      String paraValu=paraValue;
      System.out.println(paraValue);
      List<HouseBean> list=new ArrayList<HouseBean>();
     Connection conn=null;
     Statement  st =null;
     ResultSet rs=null;
     String sql="select area_no, house_no,house_desc from bi_global_warehouse_info";
if(paraValu=="YT"){
     sql=sql+" where area_no='YT'";
       }else if(paraValu =="HF"){
     sql=sql+" where area_no='HF'";
      }
     try {
     conn=DBdao.getconn();
st = conn.createStatement();
rs=st.executeQuery(sql);
while(rs.next()){
String area_no=rs.getString("area_no");
String house_no=rs.getString("house_no");
String house_desc=rs.getString("house_desc");
HouseBean bean=new HouseBean(area_no,house_no,house_desc);
list.add(bean);
}
} catch (SQLException e){
e.printStackTrace();
}finally{
DBdao.closeconn(rs, st, conn);
}
     return  list;
paraValue是我从页面传过来的值,现在通过这个值的来判断调用那个SQL语句,这个值其实是相当于SQL语句的一个查询条件,现在问题是,无论我是传哪个值进来,程序执行的都是外面String sql="select area_no, house_no,house_desc from bi_global_warehouse_info";这条查询所有的SQL,if判断根本没进去,请问是我哪里写错了

解决方案 »

  1.   

    public List<HouseBean> searchHouseDesc(String paraValue){
      String paraValu=paraValue;
      System.out.println(paraValue);
      List<HouseBean> list=new ArrayList<HouseBean>();
      Connection conn=null;
      Statement st =null;
      ResultSet rs=null; 
      String sql="select area_no, house_no,house_desc from bi_global_warehouse_info";
    if(paraValu.equals("YT")){
      sql=sql+" where area_no='YT'";
      }else if(paraValu.equals("HF")){
      sql=sql+" where area_no='HF'";
      }
      try { 
      conn=DBdao.getconn();
    st = conn.createStatement();
    rs=st.executeQuery(sql);
    while(rs.next()){
    String area_no=rs.getString("area_no");
    String house_no=rs.getString("house_no");
    String house_desc=rs.getString("house_desc");
    HouseBean bean=new HouseBean(area_no,house_no,house_desc);
    list.add(bean);
    }
    } catch (SQLException e){
    e.printStackTrace();
    }finally{
    DBdao.closeconn(rs, st, conn);
    }
    return list;
      

  2.   

    String sql=null;
    这样写下试试
      

  3.   

    额,我也不知道是哪里出的问题,if判断确实进不去,程序执行的是外面的sql语句,我查询出来的东西是所有的,如果if进去了肯定是有条件筛选的
      

  4.   

    LZ,你的if判断条件不能用 “==” 的  要用equals()
      

  5.   

    Debug试一试嘛看接受到的paraValu的值是什么
      

  6.   

    paraValu=="YT" 修改为equals()
    曾经的我也犯过这样的错误
      

  7.   

    你用==永远不会为true,字符串比较内容是否一样要用paraValu.equals("YT")
      

  8.   

    怎么可能不进呢.组装的sql语句没有什么问题吧?