manish8921 Ответов: 1

Как Я Могу Прочитать Изображение (Blob)Из Базы Данных Mysql И Показать На Jlabel С Помощью Java Swing


Привет всем, я пытаюсь прочитать blob-изображение из базы данных mysql и показать на jlabel.Но не в состоянии это сделать .
так что, пожалуйста, помогите мне.

Мой код для извлечения изображения таков:
con = ConnectionProvider.getConnection();
                        stmt = con.createStatement();
                        String query = "Select Photo from barcode.photos where Photo_id=51";
                        System.out.println(query);
                        stmt.execute(query);
                        rs=stmt.getResultSet();
                        if(rs.next())
                        {

 Blob aBlob = rs.getBlob("Photo");
  	                    byte[] imageByte = aBlob.getBytes(1, (int) aBlob.length());
  	                     InputStream is=new ByteArrayInputStream(imageByte);
  	                    BufferedImage imag=ImageIO.read(is);
  	                    Image image = imag;
  	                    // img = Toolkit.getDefaultToolkit().createImage(imageByte);
  	                    //  img = img.getScaledInstance(200,200,Image.SCALE_SMOOTH);
  	                	ImageIcon icon =new ImageIcon(img);
  	                	lblImage.setIcon(icon) ;  
}

1 Ответов

Рейтинг:
12

Basmeh Awad

попробовать это

Blob aBlob = rs.getBlob("Photo");
InputStream is = aBlob.getBinaryStream(0, aBlob.length());
BufferedImage imag=ImageIO.read(is);
Image image = imag;
ImageIcon icon =new ImageIcon(image);
lblImage.setIcon(icon); 

или
InputStream is = rs.getBinaryStream("photo"); 
// Decode the inputstream as BufferedImage
BufferedImage bufImg = null;
bufImg = ImageIO.read(is);
Image image = imag;
ImageIcon icon =new ImageIcon(image);
lblImage.setIcon(icon); 


manish8921

Дорогой, я использую ваш код, но получаю проблему.
Ява.яз.Исключение NullPointerException
в джавакс-свинг.ImageIcon.<init>(ImageIcon.java:228)
штрих-код на$2.событий actionperformed(штрих-кодов.Ява:124)
в джавакс-свинг.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
в джавакс-свинг.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
в джавакс-свинг.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
в джавакс-свинг.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
в javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
в java.awt.Component.processMouseEvent(Component.java:6504)
в джавакс-свинг.JComponent.processMouseEvent(JComponent.java:3321)
в java.awt.Component.processEvent(Component.java:6269)
в java.awt.Container.processEvent(Container.java:2229)
в java.awt.Component.dispatchEventImpl(Component.java:4860)
в java.awt.Container.dispatchEventImpl(Container.java:2287)
в java.awt.Component.dispatchEvent(Component.java:4686)
в java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
в java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
в java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
в java.awt.Container.dispatchEventImpl(Container.java:2273)
в java.awt.Window.dispatchEventImpl(Window.java:2713)
в java.awt.Component.dispatchEvent(Component.java:4686)
в java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
в java.awt.EventQueue.доступ$000(EventQueue.java:101)
в java.awt.EventQueue$3.run(EventQueue.java:666)
в java.awt.EventQueue$3.run(EventQueue.java:664)
в java.security.AccessController.doPrivileged(Native метод)
в java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
в java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
в java.awt.EventQueue$4.run(EventQueue.java:680)
в java.awt.EventQueue$4.run(EventQueue.java:678)
в java.security.AccessController.doPrivileged(Native метод)
в java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
в java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
в java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
в java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
в java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
в java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Basmeh Awad

попробуйте сейчас я обновил решение

Hayashi Narumi

Могу ли я узнать, является ли переменная значка Blob или Int?