日期:2014-05-20  浏览次数:20742 次

用户登陆
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();
}

}





}
}


------解决方案--------------------
rs.getString( "姓名 ").equalsIgnoreCase( "小王 ")
------解决方案--------------------
别用中文字段.改成英文的
还有判断两个字符串的---> 内容 是否相同是用string类型的equals()方法
------解决方案--------------------
字符串比较不能用==
要用equals();
------解决方案--------------------
对,char的话不足长度会补充空格,这个应该是不相等的原因,另外应该用equals,而不是==。
------解决方案--------------------
数据库连接要封装一下吧,直接写也太过分了.
------解决方案--------------------
if(rs.getString( "姓名 ").trim().equals( "小王 "))
这样写就行了,trim()是用来去字符串两边空格的,两个对象的比较要用equals(),用==是比较两个对象的地址是否相等.
------解决方案--------------------
.equals()
==区别