[英]How to deal with null value in table column in java?
I am getting null pointer exception again and again while getting value from database table.....why its giving me null pointer exception? 从数据库表获取值时,我一次又一次收到空指针异常.....为什么它给了我空指针异常?
Here is my code : 这是我的代码:
private HashSet getPlayerList() {
HashSet hs = new HashSet();
String soccername = "";
try {
conn = ConnectionProvider.getConnection();
rs = null;
pstmt = null;
String sql = "Select * from Players where deleted = false";
if (conn != null) {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
soccername = rs.getString("soccername").trim();// this line giving exception
if (soccername == null || soccername.isEmpty()) {
soccername = rs.getString("name").trim();
}
hs.add(soccername);
}
}
} catch (NamingException ex) {
System.out.println(ex);
} catch (SQLException ex) {
System.out.println(ex);
} finally {
try {
pstmt.close();
rs.close();
conn.close();
} catch (SQLException ex) {
System.out.println(ex);
}
}
return hs;
}
that is wrong: 那是错的:
soccername = rs.getString("soccername").trim();// this line giving exception
if (soccername == null || soccername.isEmpty()) {
if rs.getString("soccername")
returns null it must leads to a NPE because it is followed by the function trim()
. 如果
rs.getString("soccername")
返回null,则必须导致NPE,因为它后面是函数trim()
。
better is: 更好的是:
soccername = rs.getString("soccername");
if (soccername == null || soccername.trim().isEmpty()) {
It should be: 它应该是:
soccername = rs.getString("soccername");
if (soccername == null || soccername.isEmpty()) {
soccername = rs.getString("name").trim();
} else {
//now you are sure that soccername is not null
soccername = soccername.trim();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.