Java 无法解决某个NullPointerException错误
当我运行我的程序时,我有一个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
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的主要原因
您需要在对其进行任何操作之前进行初始化
您已经在这里声明了connectprivate-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
的任何内容。。。