请看下面的代码
public List<String> getNames()
{
List<String> names = new ArrayList();
try
{
createConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select NULLIF(names,' '),NULLIF(middleName,' '),NULLIF(lastName,' ') from PhoneData order by names asc");
while(rs.next())
{
String fullName = rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3);
names.add(fullName);
}
return names;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
finally
{
closeConnection();
}
}
我正在使用 Apache Derby,嵌入式版本。
我在这里检索 3 个项目,名字、中间名和姓氏。如果任何项目为空,那么我正在尝试用空格填充它。但是,当我运行它并将其添加到组合框中时,我可以看到它没有用空格替换空值!!!所有空值都显示为“空”。例如,
FirstName = "John", MiddleName="", LastName="Laxter"
如您所见,MiddleName 为空。我期待的是
“约翰·拉克斯特”
我得到的是“John null Laxter”!!!。为什么是这样?请帮忙!我在使用 MS SQLServer 时没有遇到这个问题(然后 NULLIF 是 isNull())。这里有什么问题?请帮忙!!