当前位置: 首页 > 知识库问答 >
问题:

异常线程"main"java.lang.NullPointerException错误JDeveloper 12c

商和雅
2023-03-14

我试图在java应用程序中调用java存储过程。我正在使用ORACLE数据库和JDeveloper。

我得到错误"异常线程"主"java.lang.NullPointerException.我不知道我做错了什么。

我有一个表“Beer”,我想用一个存储过程来选择所有数据,我从Java应用程序中调用这个存储过程。

我有一个java.class文件Store_A. java,我已经加载到ORACLE数据库与LOADJAVA:

import java.sql.*;
import java.io.*;

public class Store_a {

  public static void apskatit () 
    throws SQLException 
    { String sql = 
      "SELECT * FROM Beer";
    try { Connection conn = DriverManager.getConnection("jdbc:default:connection:"); 
      PreparedStatement pstmt = conn.prepareStatement(sql);
      ResultSet rset = pstmt.executeQuery();
      rset.close();
      pstmt.close(); 
      } 
    catch (SQLException e) {System.err.println(e.getMessage()); 
    }  
  }
}

然后我创建了一个程序,我计划用java调用它:

CREATE OR REPLACE PACKAGE Store_a AS
PROCEDURE apskatit;
END Store_a;

CREATE OR REPLACE PACKAGE BODY Store_a AS
PROCEDURE apskatit AS LANGUAGE JAVA
NAME 'Store_a.apskatit()';
END Store_a;

我有一个使用JDeveloper 12c创建的java文件

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Class1 {
    /**
     * @param args
     */
    public static void main(String[] args) throws SQLException {
        Connection conn = null;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //Izveidojam savienojumu
            conn = DriverManager.getConnection("jdbc.oracle.thin:@localhost:1521", "SYSTEM", "asdasd");
            // Izveidojam callable statement
            CallableStatement stmt = conn.prepareCall("CALL Store_a.apskatit()");
            ResultSet resul = stmt.executeQuery();
            while (resul.next()) {
                System.out.println(resul.getInt(1) + "\t" + resul.getString(2));
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

当我尝试运行java文件时,我在client.Class1.main(Class1.java:29)的线程“main”java.lang.NullPointerException中得到这个错误“Exception”

conn.close();

如何修复此问题?

非常感谢你提前。

共有1个答案

籍光熙
2023-03-14

如果你得到一个NPE(空指针异常),原因是你的conn对象为空。在你的最终块中,你试图关闭连接,而不检查连接是否被设置。我猜你在NPE之前还有另一个异常。检查你的日志输出。

 类似资料:
  • 问题内容: 这是代码: 错误: 跑: 请帮助我解决此错误。我正在使用Windows Vista OS。 谁能建议我如何以.3gp格式存储文件?请帮助 问题答案: 方法内部的第202行的某些对象引用是在代码尝试使用点运算符访问/调用它时进行的。 例如 解决方案实际上很简单。只需实例化它即可确保它不为空: …或在访问/调用之前简单地执行nullcheck:

  • 问题内容: 我在Java程序上遇到问题。线程“主”中的异常 是我得到的错误。我真的可以使用一些帮助,因为我在这个地方呆了几个小时… 问题答案: 这就是问题 因为是,所以每次使用它都会出现,直到您对其进行初始化。所以这: 将失败。 可能的解决方案是在声明时将其初始化: IMO比解决此异常更为重要的事实是,您应该学会 阅读 stacktrace并 理解其 含义,以便可以发现问题并加以解决。 java.

  • 我有任务要做,我有一个问题,我得到了错误。我不知道怎么修理它: 线程“main”java.lang.NullPointerException在test.main(test.java:29)中出现异常

  • 我是一个初学者,当我试图使用JPG创建标签时遇到了一些问题。 显示线程“main”java.lang.NullPointerException中的 异常 在Pane.myImageIcon.(myImageIcon.java:11) 在pane.myimageicon.main(myimageicon.java:21)

  • 我的代码中出现了这个错误。 这是我的代码: 这就是结果。错误:在线程“main”java中输入model:Exception。lang.NullPointerException在汽车上。主(车.java:10)

  • 最近我正在学习Spring框架。所以我正在尝试检查依赖注入在Spring框架中的工作原理。因此,我创建了一个新的java项目并使用基于构造函数XML的配置练习依赖注入代码。运行我的项目后,我收到了这个错误...... 类路径资源[com/mir00r/beans.XML]的XML文档中的第24行无效;嵌套异常为组织。xml。萨克斯。SAXParseException;行号:24;列数:9;cvc复