【发布时间】:2018-09-28 10:04:26
【问题描述】:
我已经尝试让这段代码工作了几个小时,需要一些帮助。我有一个数据库,其中包含一个名为“学生”的表。我正在尝试编写以下方法,该方法根据用户的输入选择一名学生(稍后将在 gui 中发生)。现在我只是在一个测试类中测试它。
我想在一个
system.out.print。我究竟做错了什么?
public Student getOneSpecificStudent(int studentID) throws SQLException {
Connection con = null;
PreparedStatement stm = null;
try {
con = DatabaseConnection.getConnection();
stm = con.prepareStatement("SELECT * FROM Student WHERE studentID = ?");
stm.setInt(1, studentID);
ResultSet rs = stm.executeQuery();
Student student = new Student();
while (rs.next()) {
return (new Student(studentID = rs.getInt("studentID"), rs.getString("studentSSN"), rs.getString("studentName"), rs.getString("studentAddress"), rs.getString("studentPhoneNumber")));
}
return student;
} finally {
DbUtils.close(con);
DbUtils.close(stm);
}
}
我目前的问题是这个测试方法:
try {
dal.getOneSpecificStudent(2);
System.out.println("Student is: " + student.getStudentSSN() +
student.getStudentID() );
} catch (SQLException e) {
System.out.println("SQL exception" + e );
}
返回空值。
【问题讨论】:
-
在您的测试方法中,您不会将
getOneSpecificStudent的结果分配给student变量。 -
检查学生对象是否包含值,或者您只是使用新关键字创建。你能写出完整的测试方法吗?
-
在测试方法中如何以及在哪里初始化学生对象?
-
在您的选择语句中,该表称为学生。在您的介绍中,您说表名是学生。
-
“返回 null。” - 什么返回 null?
标签: java sql-server database