在我的数据库中,每个问题都有一个有效的questionID(主键)和categoryID(类别表的外键)。
问题是:在每个问题的结果集中,两个ID均为0,而不是数据库中写入的ID。其他所有参数均正确填写。

private ArrayList<Question> questions = new ArrayList<Question>();
private Connection connie;
private PreparedStatement psShowQuestions;


psShowQuestions= connie.prepareStatement("SELECT * FROM question");
ResultSet rs = psShowQuestions.executeQuery();

while (rs.next()) {
     questions.add(new Question(rs.getInt("questionID"), rs.getInt("categoryID"), rs.getString("question"), rs.getString("rightAns"), rs.getString("wrong1"), rs.getString("wrong2"), rs.getString("wrong3"), rs.getString("hint")));
}
Collections.shuffle(questions);




编辑1

这是原始代码(在帖子中,我将变量从德语更改为英语):

我的SQL表的创建:

CREATE TABLE `frage` (
  `frageID` int(11) NOT NULL,
  `kategorieID` int(11) DEFAULT NULL,
  `frage` varchar(200) NOT NULL,
  `richtig` varchar(200) NOT NULL,
  `falsch1` varchar(200) NOT NULL,
  `falsch2` varchar(200) NOT NULL,
  `falsch3` varchar(200) NOT NULL,
  `hinweis` varchar(200) NOT NULL,
  `anzFalsch` int(11) DEFAULT NULL,
  `anzRichtig` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


private ArrayList<Frage> fragen = new ArrayList<Frage>();
private Connection connie;
private PreparedStatement psGetFragen;

ResultSet rs = psGetFragen.executeQuery();

while (rs.next()) {
     fragen.add(new Frage(rs.getInt("frageID"), rs.getInt("kategorieID"), rs.getString("frage"), rs.getString("richtig"), rs.getString("falsch1"), rs.getString("falsch2"), rs.getString("falsch3"), rs.getString("hinweis")));
}
Collections.shuffle(fragen);

最佳答案

最有可能的是,构造函数存在问题。您可能没有在构造函数中设置questionIDcategoryID,因此您将int的默认值设置为0

关于java - JDBC,Prepared Statement getInt()返回0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60801444/

10-10 06:06