我有一个程序,可以将图像文件转换为字节,保存到数据库中,然后再检索它们。这个程序实际上是用来生成ID的。用户可以保存图像,也可以不保存。当用户选择不保存图像时,程序应该给他们的图像一个空值。问题是,当没有图像时,它总是给我一个空指针异常。有没有其他方法可以在if语句中使用空字节?
private void Members_TableMouseClicked(java.awt.event.MouseEvent evt){
int row =Members_Table.getSelectedRow();
String Table_click=(Members_Table.getModel().getValueAt(row, 0).toString());
try{
String sql ="select * from Members where No='"+Table_click+"' ";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()){
String add1 =rs.getString("FName");
ID_Front_FN.setText(add1);
String add2 =rs.getString("LName");
ID_Front_LN.setText(add2);
String add3 =rs.getString("StdNum");
ID_Front_SNo.setText(add3);
String add4 =rs.getString("Course");
ID_Front_Crs.setText(add4);
byte[] BC_imagedata = rs.getBytes("BCImg");
BC_format = new ImageIcon(BC_imagedata);
ID_Front_BC.setIcon(BC_format);
byte[] ID_imagedata = rs.getBytes("IDImg");
if(ID_imagedata.equals(null)){ID_format=null;}else{
ID_format = new ImageIcon(ID_imagedata);}
ID_Front_Pic.setIcon(ID_format);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
byte[] BC_imagedata = rs.getBytes("BCImg");
BC_format = new ImageIcon(BC_imagedata);
ID_Front_BC.setIcon(BC_format);
byte[] ID_imagedata = rs.getBytes("IDImg");
if(ID_imagedata == null){ID_format=null;}else{
ID_format = new ImageIcon(ID_imagedata);}
ID_Front_Pic.setIcon(ID_format);
应该是if(ID_imagedata==null),而不是if(ID_imagedata.equals(null)),它将始终通过null指针异常。它期望一个对象作为它的输入,但您传递的却是null。