gpt4 book ai didi

对代码进行必要的更改时出现 java.lang.NullPointerException(Java Netbeans IDE 7.4 和 JDK 1.7)

转载 作者:行者123 更新时间:2023-12-01 17:56:27 26 4
gpt4 key购买 nike

我最初的代码如下。

public class JFrameAllMarks extends javax.swing.JFrame {


public JFrameAllMarks() {
initComponents();
setDefaultCloseOperation(JFrameAllMarks.DISPOSE_ON_CLOSE);
showMark();

}

public ArrayList<Marks> markList1()
{
ArrayList<Marks> marksList = new ArrayList<>();

try {
DBConnection obj = new DBConnection();

String selectquery = "SELECT * FROM Marks";

ResultSet rs = obj.getdata(selectquery);

Marks objmk;

while(rs.next())
{
objmk = new Marks(rs.getString("StudentID"), rs.getString("StudentName"), rs.getString("SubjectID"), rs.getString("SubjectName"), rs.getString("BatchID"), rs.getInt("Marks"));
marksList.add(objmk);
}
}
catch (SQLException ex) {
Logger.getLogger(JFrameAllMarks.class.getName()).log(Level.SEVERE, null, ex);
}

return marksList;
}


public void showMark()
{
ArrayList<Marks> list = markList1();

DefaultTableModel dtm = (DefaultTableModel)jTableAllMarks.getModel();

Object[] row = new Object[6];

for(int i=0; i<list.size();i++)
{
row[0] = list.get(i).getStudentID();
row[1] = list.get(i).getStudentName();
row[2] = list.get(i).getSubjectID();
row[3] = list.get(i).getSubjectName();
row[4] = list.get(i).getBatchID();
row[5] = list.get(i).getMarks();

dtm.addRow(row);

}
}

以及上面代码中ArrayList所需的java类。

package AllMarksList;

/**
*
* @author Admin
*/
class Marks {
private String StudentID, StudentName, SubjectID, SubjectName, BatchID;
private int Marks;

public Marks (String StudentID, String StudentName, String SubjectID, String SubjectName, String BatchID, int Marks)
{
this.StudentID=StudentID;
this.StudentName=StudentName;
this.SubjectID=SubjectID;
this.SubjectName=SubjectName;
this.BatchID=BatchID;
this.Marks=Marks;

}


public String getStudentID()
{
return StudentID;
}

public String getStudentName()
{
return StudentName;
}

public String getSubjectID()
{
return SubjectID;
}

public String getSubjectName()
{
return SubjectName;
}

public String getBatchID()
{
return BatchID;
}

public int getMarks()
{
return Marks;
}

}

以上代码执行正确。它显示了“Marks”数据库表中的所有数据。

因此,我复制并粘贴了该类和相关类来创建另一个功能完全相同的 JFrame 和 java 类。进行了相关更改,以便在原始 JFrame 和 Java 类与复制的 JFrame 和 java 类之间产生明显的变化。

在这个新的 JFrame 中,我想从数据库中仅提取包含特定学生 ID 的数据。因此,我将选择查询更改为以下内容。

String selectquery = "SELECT * FROM Marks WHERE StudentID=S001";

在执行这个新代码时,我收到以下错误。

SEVERE: null
java.lang.NullPointerException
at StudentMarks.JFrameStudentAllMarks.markList1(JFrameStudentAllMarks.java:47)
at StudentMarks.JFrameStudentAllMarks.showMark1(JFrameStudentAllMarks.java:63)
at StudentMarks.JFrameStudentAllMarks.<init>(JFrameStudentAllMarks.java:30)
at StudentMarks.JFrameStudentAllMarks$3.run(JFrameStudentAllMarks.java:224)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

尝试更改错误所指出的代码行。但没能解决这个问题。

非常感谢您的帮助。

最佳答案

因为您是从 Java 字符串创建 SQL 查询,所以您需要使用 SQL 语法。 SQL 使用单引号来分隔字符串,因此您需要手动将它们添加到查询中。

这是所需的字符串:

String selectquery = "SELECT * FROM Marks WHERE StudentID='S001'";

关于对代码进行必要的更改时出现 java.lang.NullPointerException(Java Netbeans IDE 7.4 和 JDK 1.7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60708143/

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