Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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 无法解释的NullPointerException,或者看起来是这样_Java_Nullpointerexception_Derby - Fatal编程技术网

Java 无法解释的NullPointerException,或者看起来是这样

Java 无法解释的NullPointerException,或者看起来是这样,java,nullpointerexception,derby,Java,Nullpointerexception,Derby,我正在使用JavaDB和Derby修改数据库。我试图创建一个具有 statement.executeUpdate(SQLUpdate); 其中,SQLUpdate是用于创建视图的SQL命令的查询,但出于某种原因,Java在SQLUpdate上抛出NullPointerException,尽管我将其声明为:private String SQLUpdate//我首先尝试将其声明为局部变量,然后将其声明为可供整个类使用的私有变量。如果这是C++,我会做这个工作,但是考虑到这是java,我没有访问Po

我正在使用JavaDB和Derby修改数据库。我试图创建一个具有

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确实是爬行动物,但绝不是无缘无故的:)