gpt4 book ai didi

java - 无法检索 blob 数据并在 JLabel-mySql 中显示

转载 作者:行者123 更新时间:2023-11-30 23:09:34 26 4
gpt4 key购买 nike

第一次发帖,希望得到大家的帮助。我浏览了该论坛上的所有类似帖子...并相信代码曾经是正确的,但它继续返回 nullpointerException。该程序是一个简单的员工数据库,输入员工详细信息和图片。这工作正常,可以将图像插入 mySql 中的 blob 字段没问题。但是,我根本无法在 JLabel 中检索和显示。

下面的代码是程序的最后一部分,用户可以在其中简单地插入员工姓名来检索所有详细信息。搜索功能如下:

void search(){
try {
st = cn.createStatement();
byte[] imageBytes;
Image image;
ResultSet rs=st.executeQuery("SELECT * FROM info WHERE pname='"+ txtSearch.getText() + "'");


if(rs.next()){
txtName.setText(rs.getString("Pname").toString());
if (rs.getString("sex").toString().equals("Male")){
cboGender.setSelectedIndex(0);
}else{
cboGender.setSelectedIndex(1);
}

txtAddress.setText(rs.getString("address").toString());
txtPosition.setText(rs.getString("position").toString());
txtSecurityLvl.setText(rs.getString("security").toString());

try {
String sql = ("select photograph from info where pname ='" + txtSearch.getText() + "'");
ps = cn.prepareStatement(sql);
rs = ps.executeQuery();

if (rs.next()) {
byte[] imagedata= rs.getBytes("photograph");
format=new ImageIcon(imagedata);
picLabel2.setIcon(format);

}

} catch (Exception e) {
e.printStackTrace();
}

/*
try {
BufferedImage img = ImageIO.read(rs.getBinaryStream("photograph"));
picLabel.setIcon(new ImageIcon(img));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


//picLabel.setIcon(new ImageIcon(ByteStreams.toByteArray(Blob.getBinaryStream())));
*/



}else{

JOptionPane.showMessageDialog(null,"Not Found",null, JOptionPane.INFORMATION_MESSAGE, null);
}

} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

非常感谢任何帮助,这应该是一项简单的任务,但是我已经看了很长时间以至于看不到它。谢谢!

*nb- mySql Db 表是'info',包含blob 的列是'photograph'

更新:程序应使用姓名、地址等填充相应的文本字段,并在相应的标签中显示员工照片。文本字段已填充,但程序在此行崩溃:picLabel2.setIcon(format);返回 nullPointerException () **第 630 行

最佳答案

您还没有初始化 picLabel2。 (从报错来看)

picLabel2.setIcon(format); 上面的某处,您需要执行以下操作:

JLabel picLabel2 = new JLabel();

您可能还想在标签上设置文本,如果需要的话,您可以:

  • 在构造函数中将其作为 String 传递。
  • 调用picLabel2.setText(string)

关于java - 无法检索 blob 数据并在 JLabel-mySql 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20444356/

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