这是我的代码:
//Section 5, Execute Query
asking = conn.createStatement();
String Sql = "SELECT * FROM exercise4a";
ResultSet rs = asking.executeQuery(Sql);
//Section 6, Option 2
//if(rs.isBeforeFirst())
//{
rs.next();
int numRows = rs.getRow();
String name = rs.getString("FirstName");
for(int i = 0; i < numRows; i++)
{
rs.next();
name = rs.getString("FirstName");
System.out.println("Test1");
System.out.println("Test1" + name);
if(name.equals(fName))
{
System.out.println("Test2");
}
else
{
rs.next();
我遇到的问题是将输入字符串(fName)与数据库列(FirstName)进行比较。对于这个项目,我无法以任何方式修改表。 FirstName的架构是VARCHAR(50)。
如何将scanner String与VARCHAR进行比较并返回输出?
System.out.println(“Test2);是一个占位符,用于根据FirstName列打印注释。
答案 0 :(得分:1)
替换
if(name.equals(fName))
用
if(name.trim().equalsIgnoreCase(fName.trim()))
trim()
函数从String
值中删除任何前导/尾随空格。然后,equals()
更改为equalsIgnoreCase()
,正如您猜测的那样,检查String
值是否相同,而不比较大小写。