Публикация в первый раз, надеясь на помощь. Я прошел через все подобные публикации на этом форуме ... и считаю, что код был правильным, однако он продолжает возвращать исключение nullpointerException. Программа представляет собой простую базу данных сотрудников, в которую входят сведения о сотрудниках вместе с изображением. Это прекрасно работает, не может вставить изображение в поле blob в mySql. Однако я просто не могу получить и отобразить в JLabel.Не удается получить данные о блобе и отобразить их в JLabel- mySql
Следующий код является заключительной частью программы, где пользователь может просто вставить имя сотрудника для получения всех деталей. функция поиска выглядит следующим образом:
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 БД «Информация», столбец с содержащим блоб является «фотографии»
Обновлены: Программа должны заполнить соответствующие текстовые поля с именем, адрес и т.д., а также отображать фотографию сотрудника в соответствующую метку. Текстовые поля заполняются, но программа выходит из строя в этой строке: picLabel2.setIcon (format); возврат nullPointerException() ** строка 630
Что именно в вашей программе не так, как ожидалось? Пожалуйста, укажите номера строк/укажите некоторые строки, в которых происходит реальная проблема. – skiwi
java.lang.NullPointerException \t в test.search (test.java:630) \t на тест $ 7.mouseClicked (test.java:521) \t в java.awt.AWTEventMulticaster.mouseClicked (Unknown Source) \t на java.awt.Component.processMouseEvent (Неизвестный источник) – RMcGuigan
Программа должна заполнить соответствующие текстовые поля именем, адресом и т. д. и отобразить фотографию сотрудника на соответствующей метке. Текстовые поля заполняются, но программа выходит из строя в этой строке: picLabel2.setIcon (format); return nullPointerException – RMcGuigan