下面是按照学号查找的一段代码,我想知道为什么要判断学号不等于?而且既然判断学号不等于0了,那么等于0就不判断了吗?求大神详解,万分感谢
public List<Xuesheng> getList(int xh)
{
String where="";
if(xh!=0)
{
where=where+" where xueHao="+xh+"";
}
return this.findAll(where);
}
因为学号不可能等于0;而 xh是int 型。所以应该有默认值0 表示查询 全部,
等于0的时候where为空值,会返回this.findAll("")。
你想啊,findAll()这个方法是干什么的呢?当然我是看不到你的具体代码的,不过我猜啊,猜啊,猜啊……原来如此!
当xh=1时,是findAll(" where xueHao=1");当xh=2时,是findAll(" where xueHao=2");当xh=0时,是findAll("");所以……啊!就是说在findAll里有一句SQL,然后再把findAll()里的参数接到SQL语句后面。于是呢,当xh=0时,SQL后面就没有where了,当然就是把数据全查出来了。
是吧???是吧!!!