我有一个方法...我找不到错误:
public String getUsernameforID(int id) {
String statment = "SELECT USERNAME FROM `BENUTZER` WHERE `ID` = ? ;";
String username = null;
try {
PreparedStatement ps = dbCommunicator.getStatment(statment); // HERE : NULL POINTER EXECTION
ps.setInt(1, id);
ResultSet rs = dbCommunicator.readFromDB(ps);
if (rs.first()) {
username = rs.getString("USERNAME");
}
} catch (SQLException ex) {
Logger.getLogger(DBManager.class.getName()).log(Level.SEVERE, null, ex);
}
return username;
Run Code Online (Sandbox Code Playgroud)
我认为这是声明......但我怎么能找到这个呢?我得到一个Null Pointer Exeption.
编辑:我的getStatment方法:
public PreparedStatement getStatment(String st) {
connect();
PreparedStatement ps = null;
try {
ps = (PreparedStatement) connection.prepareStatement(st);
} catch (SQLException ex) {
Logger.getLogger(DBCommunicator.class.getName()).log(Level.SEVERE, null, ex);
}
return ps;
}
Run Code Online (Sandbox Code Playgroud)
例外情况:
Exception in thread "main" java.lang.NullPointerException
at test.DBCommunicator.getStatment(DBCommunicator.java:107)
at test.database.DBManager.getUsernameforID(DBManager.java:359)
at dbtestdrive.Main.main(Main.java:25)
Run Code Online (Sandbox Code Playgroud)
虽然这个问题可能已经解决了,但这里有一些关于如何在给定堆栈跟踪的情况下进行调试的问题.
在这种情况下,堆栈跟踪如下:
Exception in thread "main" java.lang.NullPointerException
at test.DBCommunicator.getStatment(DBCommunicator.java:107)
at test.database.DBManager.getUsernameforID(DBManager.java:359)
at dbtestdrive.Main.main(Main.java:25)
Run Code Online (Sandbox Code Playgroud)
这表明在该test.DBCommunicator.getStatment
方法中,a NullPointerException
被抛出到107行的位置DBCommunicator.java
.
此外,该getStatment
方法从管线358的称为DBManager.java
这是在DBManager.getUsernameforID
方法.
因此,应该检查的第一个地方是在第107行发生的事情DBCommunicator.java
.
虽然给出的代码片段中没有行号,但可以假设a NullPointerException
出现在以下行中:
ps = (PreparedStatement) connection.prepareStatement(st);
Run Code Online (Sandbox Code Playgroud)
有一件事在NullPointerException
s 上很常见- 它们通常在对null
引用执行方法调用时出现.在不存在的对象上调用方法将抛出一个NullPointerException
.
在上面的代码中,可以预期connection
变量实际上是null
,而不是具有Connection
.
这应该导致尝试追踪connection
变量的原因null
而不是与初始化的数据库建立有效连接.
归档时间: |
|
查看次数: |
9783 次 |
最近记录: |