SQL里怎么判断字段是否相符啊?
我从form里传了个String字段A到JSP文件
JSP里判断SQL里是否有和这个A字段一样的数据,假设SQL里有和A一样数值的B
我用if(A==B || A.equals(B))判断为什么不起作用啊?
(已经确定A和B是一样的值。都是String型)
------解决方案--------------------要用A.equals(b)
------解决方案--------------------但IF语句好象就是进不去?你确定没有进去吗?在if的里面 end=true 的前面再System.out一下
------解决方案--------------------if(username==username2 || username.equals(username2)){
end = true;
} 中:把username == username2条件去掉,即:
if(username.equals(username2)){
end = true;
} 不可以的话,那就只能期待高手了。原因的话 2楼的JCMAN()说的没错,是对象的比较
------解决方案--------------------你试一下打出两个String的长度看看相同不
------解决方案--------------------A==B是判断是否为同一个对象,
而A.equals(B)是判断值是不是相等
最好这么写
A.trim().equals(B.trim())
------解决方案--------------------难道关注到今天也没人解决吗?那就继续关注了
trim 去掉空格吧
------解决方案--------------------trim(),去掉空白
估计也是这方面的原因
------解决方案--------------------if(username==username2 && username.equals(username2)){
end = true;
}
------解决方案--------------------while(rs.next()){
username2 = rs.getString( "username ");
if(username==username2 || username.equals(username2)){
end = true;
}
}
你确定WHILE语句进去了?
------解决方案--------------------如果已经从数据库里查出了该字段,就须a.equals(b),如果要写sql语句那么在sql语句里直接a=b判断就行了。
------解决方案--------------------select count(*) from table where 字段=你输入的
------解决方案--------------------select *from table where 字段=你输入的 and 字段=你输入的
判断是否有结果集吗?
------解决方案--------------------主要考虑大小写,空白符,全角半角(尤其是中间有空格的情况)...
------解决方案--------------------while(rs.next()){
username2 = rs.getString( "username ");
if(true){
end = true;
}
}
确定一下,进入while没,如果进入,那就是像malligator(不能再整天泡在CSDN里了!) 说的那样了。
------解决方案--------------------java里头==是比较内存地址,除了数值类型一般都不这么比的