gpt4 book ai didi

java - ZK Controller 中java空指针异常

转载 作者:行者123 更新时间:2023-12-02 08:01:13 24 4
gpt4 key购买 nike

我在部署 ZK 时遇到一些错误

Jan 16, 2012 5:00:59 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [zkLoader] in context with path [/ZK509App6] threw exception
java.lang.NullPointerException
at controller.jurnal.JournalController.<init>(JournalController.java:39)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)

这是我的 JournalController.java 类

public class JournalController extends GenericForwardComposer {

private Listbox listlk;
private Datebox datebox;
private koneksi k;
private Connection c;
private SimpleDateFormat sdf;
private Button pilih;
private Date dates;
private jurnalDAO jd = new jurnalDAO(k.getConnection(), dates);


public JournalController() {
}

public void onClick$pilih(Event e) throws Exception, SQLException {
try {
Date d = datebox.getValue();
d = dates;
ForwardEvent forwardEvt = (ForwardEvent) e;
Listbox Listlk = (Listbox) forwardEvt.getOrigin().getTarget();
} catch (Exception a) {
a.printStackTrace();
}
}
public List<Jurnal_tbl> getAllEvents() throws SQLException, Exception {

return jd.getLKeuangan();
}
}

(JournalController.java:39) 的行是私有(private) jurnalDAO jd = new jurnalDAO(k.getConnection(), 日期);

仅供引用,这是 DAO 类

public class jurnalDAO {

private Connection conn;
private Date tanggal;

public jurnalDAO(Connection conn, Date dates) {
this.conn = conn;
this.tanggal = dates;
}


public List<Jurnal_tbl> getLKeuangan() throws SQLException, Exception {
PreparedStatement ps = null;

try {
List<Jurnal_tbl> llk = new ArrayList<Jurnal_tbl>();
System.out.println("test1");


String sql = "SELECT * from public.jurnal where tanggal = ?";
ps = conn.prepareStatement(sql);
ps.setDate(1, new java.sql.Date(tanggal.getTime()));
System.out.println(ps.toString());;

ResultSet rs = ps.executeQuery();
Jurnal_tbl jt;
while (rs.next()) {
// llk.add(new Jurnal_tbl(rs.getString("kd_jurnal"), rs.getString("no_trans"), rs.getString("tanggal"), rs.getString("account"), rs.getString("descript"), rs.getString("dc"), rs.getDouble("amount"), rs.getString("no_item")));
jt = new Jurnal_tbl();
jt.setKode(rs.getString("kd_jurnal"));
jt.setTransaksi(rs.getString("no_trans"));
jt.setTanggal(rs.getString("tanggal"));
jt.setAkun(rs.getString("akun"));
jt.setDeskripsi(rs.getString("descript"));
jt.setDC(rs.getString("dc"));
jt.setAmount(rs.getDouble("amount"));
jt.setItem(rs.getString("no_item"));
llk.add(jt);
}

rs.close();
return llk;
} finally {
}
}
}

请大家帮帮我吧T.T这是我学士学位的最后一个项目 T.T

最佳答案

您正在调用 k.getConnection(),但您从未初始化 k,因此它将具有默认值 null 。这肯定会抛出 NullPointerException 。您期望它在什么对象上调用getConnection()

顺便说一句,值得注意的是名称:

  • k 对于实例变量来说是一个毫无意义的名称
  • “journal”和“jurnal”之间的含义不一致
  • 类型名称 koneksi 不遵循 Java 命名约定(大写)
  • 变量名称 LiSTLk 不遵循 Java 命名约定(大写)
  • 类型名称 Jurnal_tbl 不遵循 Java 命名约定(下划线)

另外:

  • 你几乎不应该捕获异常
  • 您应该关闭finally block 中的资源

(我还没有对代码进行彻底的分析 - 这只是我的初步印象。)

关于java - ZK Controller 中java空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com