Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中如何处理表列中的空值?_Java_Jdbc_Nullpointerexception - Fatal编程技术网

java中如何处理表列中的空值?

java中如何处理表列中的空值?,java,jdbc,nullpointerexception,Java,Jdbc,Nullpointerexception,在从数据库表中获取值时,我一次又一次地获取空指针异常…为什么它会给我空指针异常 这是我的密码: private HashSet getPlayerList() { HashSet hs = new HashSet(); String soccername = ""; try { conn = ConnectionProvider.getConnection(); rs = null;

在从数据库表中获取值时,我一次又一次地获取空指针异常…为什么它会给我空指针异常

这是我的密码:

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;
   }
这是错误的:

soccername = rs.getString("soccername").trim();// this line giving exception
if (soccername == null || soccername.isEmpty()) {
如果rs.getStringsoccername返回null,则必须导致NPE,因为它后面跟着函数trim

更好的是:

soccername = rs.getString("soccername");
if (soccername == null || soccername.trim().isEmpty()) {
应该是:

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();
}
可能重复的