Member 14050449 Ответов: 1

Поиск изображения из базы данных, но не отображение в java jlable


Я перепробовал почти все... Пожалуйста, помогите кому-нибудь. Выходные данные отображаются следующим образом: run:
Сборка прошла успешно (общее время: 8 секунд)
Но изображение не отображается в jLable

Что я уже пробовал:

CrimiID = это.txtCriID.с текстом();

String Query = "SELECT * FROM criminal WHERE CriminalID = '"+CrimiID+"'";

Соединение с БД.Соединение с БД();

пробовать {

Оператор s = DBConnection.con.createStatement();
Набор РС = С. метод executequery(запрос);
в то время как(rs.next()){
java.sql.Blob FileNameBlob = rs.getBlob("фото");
byte[] content = FileNameBlob.getBytes(1L, (int) FileNameBlob.length());
ImageIcon ik = новый ImageIcon(контент);
окончательное изображение bufferedimage не = ImageIO.читают(новый объект bytearrayinputstream(контент));
Изображения с IMG = ИК.образец getimage();
Newimg изображения = ИМГ.getScaledInstance(это.jLabelPhoto.getWidth(), этот.jLabelPhoto.getHeight(), в Java.авт.Изображения.SCALE_SMOOTH);
ik = new ImageIcon(newimg);
это.jLabelPhoto.с seticon(ИК);
} catch (SQLException ex) {

JOptionPane.showMessageDialog(null, то экс.функции GetMessage());

}
}

1 Ответов

Рейтинг:
0

MadMyche

Пожалуйста, используйте правильно подготовленные инструкции и параметры при работе с базой данных.
SQL-инъекция была идентифицирована еще в конце 90-х годов, и, к сожалению, она все еще находится в уязвимости № 12 на веб-сайтах.

Итак, первая ошибка, которую я вижу, находится в вашем SQL-операторе
Вы можете узнать, как правильно подготовить инструкции и использовать параметры на веб-сайте Oracle: Использование подготовленных операторов (учебники Java™ > JDBC(TM) Database Access > JDBC Basics)[^]
String Query = "SELECT * FROM criminal WHERE CriminalID = '"+CrimiID+"'";
следует заменить на
String Query = "SELECT * FROM criminal WHERE CriminalID = ?";

Обычно я бы дал полный код, но я не нахожусь на своей машине разработки с ним под рукой. Я использовал код, похожий на это решение переполнения стека:
java - отображение blob-изображения из базы данных в jlabel - переполнение стека[^]