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()
==区别