gpt4 book ai didi

java - 如果只有一列为空,如何从结果集中获取数据

转载 作者:行者123 更新时间:2023-12-01 06:08:23 25 4
gpt4 key购买 nike

我正在尝试在一些文本中设置信息。当所有列都已满时,我的代码很好,但是当列为空时,会抛出异常,并且代码不会在 try catch 内运行。

我知道问题是空列,因为 PhotoQ 列是用户的可选数据信息。所以一个解决方案是,也许在所有用户帐户中加载默认照片,但会花费存储在数据库中。

请原谅我的英语,我是新人 XD。

示例代码:

try {
PreparedStatement pstm = conn.prepareStatement(query);
pstm.setInt(1, userid);
pstm.setInt(2, quizzid);
pstm.setInt(3, NumQuest);
ResultSet rs =pstm.executeQuery();

while (rs.next()) {
fileBytes = rs.getBytes("PhotoQ");
ImageIcon image = new ImageIcon(fileBytes);
Image im = image.getImage();
Image myImg = im.getScaledInstance(lblImage.getWidth(), lblImage.getHeight(), Image.SCALE_SMOOTH);
ImageIcon newImage = new ImageIcon(myImg);

if (rs.getString("Optionsid").endsWith("1")) {
txtaA.setText(rs.getString("Options"));
txtaQuestion.setText(rs.getString("Question"));
if (rs.getInt("Valid")==1) {
ckbA.setSelected(true);
}
else {
ckbA.setSelected(false);
}
}
}
}

最佳答案

您的问题和错误似乎集中在 PhotoQ 和/或 Optionsid 列的 null 值。您应该对每一列使用显式空值检查。仅当列不为 null 时,您才应尝试使用该值。

沿着这些思路应该可以让您了解如何处理这个问题:

while (rs.next()) {
fileBytes = rs.getBytes("PhotoQ");
if (fileBytes != null) {
ImageIcon image = new ImageIcon(fileBytes);
Image im = image.getImage();
Image myImg = im.getScaledInstance(lblImage.getWidth(), lblImage.getHeight(), Image.SCALE_SMOOTH);
ImageIcon newImage = new ImageIcon(myImg);
}

String optionsId = rs.getString("Optionsid");
if (optionsId != null && optionsId.endsWith("1")) {
txtaA.setText(rs.getString("Options"));
txtaQuestion.setText(rs.getString("Question"));
Integer valid = rs.getInt("Valid");
if (valid != null && valid.intValue() == 1) {
ckbA.setSelected(true);
} else {
ckbA.setSelected(false);
}
}
}

关于java - 如果只有一列为空,如何从结果集中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40002534/

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