Java 无法解释的NullPointerException,或者看起来是这样
我正在使用JavaDB和Derby修改数据库。我试图创建一个具有Java 无法解释的NullPointerException,或者看起来是这样,java,nullpointerexception,derby,Java,Nullpointerexception,Derby,我正在使用JavaDB和Derby修改数据库。我试图创建一个具有 statement.executeUpdate(SQLUpdate); 其中,SQLUpdate是用于创建视图的SQL命令的查询,但出于某种原因,Java在SQLUpdate上抛出NullPointerException,尽管我将其声明为:private String SQLUpdate//我首先尝试将其声明为局部变量,然后将其声明为可供整个类使用的私有变量。如果这是C++,我会做这个工作,但是考虑到这是java,我没有访问Po
statement.executeUpdate(SQLUpdate);
其中,SQLUpdate
是用于创建视图的SQL命令的查询,但出于某种原因,Java在SQLUpdate上抛出NullPointerException,尽管我将其声明为:private String SQLUpdate代码>//我首先尝试将其声明为局部变量,然后将其声明为可供整个类使用的私有变量。如果这是C++,我会做这个工作,但是考虑到这是java,我没有访问PoTeCub的权限。p>
有人能告诉我为什么Java会抛出NullPointerException吗//我已经阅读了这里的文档:(查找executeUpdate()
),但它没有说明将SQL查询存储到字符串变量,然后使用executeUpdate(myStringVariable)
如果您仅如您所述声明了SQLUpdate
,那么它将具有默认值。Java中对象属性的默认值为null
,这会导致NullPointerException
。您需要将SQL设置为SQLUpdate
属性以使其工作。编写SQL时,似乎忘记了初始化变量SQLUpdate
。声明它之后,您应该在executeUpdate
方法中使用它之前初始化它。因此,你得到了NPE
您可以这样直接执行查询:
s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES ('RICH', 123)");
或者,如果您创建了与您类似的变量:
private String SQLUpdate;
//in your code/method/etc..
SQLUpdate = "INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES ('RICH', 123)";
s.executeUpdate(SQLUpdate);
您的语句
对象也可以是null
。
一个链接,显示了一个使用db执行基本操作的示例。当您尝试调用方法或引用空对象上的属性时,Java抛出NullPointerException
(通常缩写为NPE)
如上所述,您的语句
对象可能为空。或者,语句的executeUpdate
方法中的某些内容可能正试图以这种方式访问null
属性
如果您查看堆栈跟踪,它应该准确地告诉您是哪一行产生了错误,这有助于您诊断哪个对象为null。声明->初始化->使用它。您的语句对象可能是null
。NPE发生在您试图对空对象调用方法时。您的意思是说类似于SQLUpdate=“CREATE VIEW myView AS SELECT”代码>构造函数中的某个地方(或者在我使用此变量,然后继续正常工作的方法中?请发布完整的StackTrace此问题已修复。我犯了一个我应该在前面看到的简单逻辑错误//也许我应该休息一下……我犯了最基本的错误//现在已修复。某些函数在传递null时也会抛出NPE。@BaileyS是的,当传入null整数时,您将得到错误,其中原语int应为well@Shadow确实是爬行动物,但绝不是无缘无故的:)