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

标签 java jdbc nullpointerexception

我在从数据库表获取值时一次又一次地遇到空指针异常......为什么它给我空指针异常?

这是我的代码:

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.getString("soccername")返回null,它一定会导致NPE,因为它后面跟着函数trim()

更好的是:

soccername = rs.getString("soccername");
if (soccername == null || soccername.trim().isEmpty()) {

关于java - java中如何处理表列中的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26971805/

相关文章:

java - 对象类型列表和扩展类型的对象列表之间的区别

java - jar 文件找不到 org.eclipse.swt.widgets.Display

Java:帮助构造 fillTextFields() 方法

java - 无法从 Ubuntu 上的 Java 程序连接到本地主机上的 MySQL

java - JAXB 构造函数注入(inject)

java - MySQL 和 Java - 获取最后插入值的 id (JDBC)

Java空指针异常不会终止程序

android - 尝试在空对象上调用虚拟方法boolean RecyclerView $ ViewHolder shouldIgnore()

在 Tomcat 8 上运行时迭代文件时出现 java.lang.NullPointerException

java - 在 Leiningen (Clojure) for Android 中设置 JavaVersion sourceCompatibility(Java 1.7 vs 1.8)