Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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 - Fatal编程技术网

Java 无法解决某个NullPointerException错误

Java 无法解决某个NullPointerException错误,java,nullpointerexception,Java,Nullpointerexception,当我运行我的程序时,我有一个NullPointerException错误,我读了一些关于它的东西,并试图做一些更改,但仍然得到错误。 代码如下: public class Farm { private Connection connect; private PreparedStatement prep; public Farm(){ try { Class.forName("oracle.jdbc.OracleDriver"); DriverManager

当我运行我的程序时,我有一个NullPointerException错误,我读了一些关于它的东西,并试图做一些更改,但仍然得到错误。 代码如下:

public class Farm {
private Connection connect;
private PreparedStatement prep;
public Farm(){
    try {
        Class.forName("oracle.jdbc.OracleDriver");
        DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "SHID","pikachu");

    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public void AddAnimal(String name, int age, double weight, String specie){

    String sql="INSERT INTO ANIMALFARM VALUES('"+name+"',"+age+", "+weight+",'"+specie+"')";
    try {
        prep= connect.prepareStatement(sql);

        prep.executeUpdate();

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}}
我的主要班级:

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Farm ferme= new Farm();
    ferme.AddAnimal("Cerbre", 43, 34.00, "dog");
}}
我犯了这个错误

Exception in thread "main" java.lang.NullPointerException
at Farm.AddAnimal(Farm.java:31)
at Test.main(Test.java:7)

通过查看您的代码,我发现
connect
未初始化,这可能是NPE的主要原因

您需要在对其进行任何操作之前进行初始化

您已经在这里声明了connect
private-connect-connect
然后调用
prep=connect.prepareStatement(sql)


正如您所知,实例变量默认为null,因此对null的任何操作都会产生nullpointerexception

您必须将connect变量链接到数据库

connect = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "SHID","pikachu");

如果不这样做,连接将为null,因此您会得到一个null点异常

您的
连接
未初始化为连接对象。您需要为其分配连接对象来修复它

connect =  DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "SHID","pikachu");

您尚未初始化连接对象
connect
我没有看到分配给
connect
的任何内容。。。