用户登陆

yuanxiang251 2007-09-10 10:32:49
sql里面有小王 但是还是输出小王不在 if(rs.getString("姓名")=="小王")这歌语句没有执行到 有什么解决办法么
顺便告诉我一下出现这歌问题 的原因 谢谢各位大侠了
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import java.sql.*;
public class sql {


public static void main(String[] args) {
Connection cn = null;
ResultSet rs = null;
Statement stmt = null;
try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
cn = DriverManager.getConnection
("jdbc:microsoft:sqlserver://localhost:1433;yuanxiang=master","yuanxiang","yuanxiang");
stmt = cn.createStatement();
rs= stmt.executeQuery("select * from [yuanxiang].[dbo].yx");
while(rs.next()){

if(rs.getString("姓名")=="小王"){
System.out.print("有小王");
}
else
System.out.print("小王不在");

}
}catch (Exception e) {

e.printStackTrace();
}
finally
{
try {
rs.close();
stmt.close();
cn.close();
} catch (SQLException e) {

e.printStackTrace();
}

}





}
}
...全文
256 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingNE 2007-09-11
  • 打赏
  • 举报
回复
.equals()
==区别
idilent 2007-09-11
  • 打赏
  • 举报
回复
看了yuyu622() ( 二级(初级))的回复才想起来,登陆怎么能这样写呢?如果用户表中有10w数据,没登陆一个都要遍历这10w数据?

应该用select * from [yuanxiang].[dbo].yx where 姓名="?";

建议做的时候多考虑一下,否则你的系统做出来,能死人。
awusoft 2007-09-10
  • 打赏
  • 举报
回复
别用中文字段.改成英文的
还有判断两个字符串的---> 内容 是否相同是用string类型的equals()方法
supermanyan10 2007-09-10
  • 打赏
  • 举报
回复
rs.getString("姓名").equalsIgnoreCase("小王")
yuyu622 2007-09-10
  • 打赏
  • 举报
回复
if(rs.getString("姓名").trim().equals("小王"))
这样写就行了,trim()是用来去字符串两边空格的,两个对象的比较要用equals(),用==是比较两个对象的地址是否相等.
zhuxr2003 2007-09-10
  • 打赏
  • 举报
回复
数据库连接要封装一下吧,直接写也太过分了.
idilent 2007-09-10
  • 打赏
  • 举报
回复
对,char的话不足长度会补充空格,这个应该是不相等的原因,另外应该用equals,而不是==。
「已注销」 2007-09-10
  • 打赏
  • 举报
回复
字符串比较不能用==
要用equals();
yuanxiang251 2007-09-10
  • 打赏
  • 举报
回复
问题没有解决啊 顺便说一下 我的数据库里 姓名 char 10
提取出来 好像字符串很有一段 空格

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧