我正在使用 JavaDB 和 Derby 来修改数据库。我试图用
创建一个 Viewstatement.executeUpdate(SQLUpdate);
哪里SQLUpdate
是创建 View 的 SQL 命令的查询,但由于某种原因,Java 在 SQLUpdate 上抛出 NullPointerException 即使我已将其声明如下: private String SQLUpdate;
。//我首先尝试将其声明为局部变量,但后来转而将其声明为整个类可用的私有(private)变量。如果这是 C++,我会让它工作,但考虑到这是 Java,我无权访问指针业务。
有人能给我诊断一下为什么 Java 可能会抛出 NullPointerException 吗?//我已阅读此处的文档:http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeUpdate%28java.lang.String%29 (查找 executeUpdate()
),但它没有说明将 SQL 查询存储到字符串变量然后使用 executeUpdate(myStringVariable);
最佳答案
当您尝试调用空对象的方法或引用属性时,Java 会抛出 NullPointerException(通常缩写为 NPE)。
正如上面评论中提到的,您的 statement
对象可能为 null。或者,语句的 executeUpdate
方法内部的某些内容可能会尝试以这种方式访问 null
属性。
如果您查看堆栈跟踪,它应该准确地告诉您哪一行产生了错误,并帮助您诊断哪个对象为空。
关于java - 莫名其妙的 NullPointerException,至少看起来是这样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16701431/