首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >并不是所有的Blob图像都显示在jpanel中。

并不是所有的Blob图像都显示在jpanel中。
EN

Stack Overflow用户
提问于 2017-04-04 20:15:42
回答 1查看 72关注 0票数 0

我在derby列…中插入了3个blob (图像).One blob第一次,然后其他条目插入2个blob ...the blob插入一行。

blob.getLength()给出了3个blob(图像)之和的确切字节大小,这表明这3个blob已经保存在DB中。

然后我试着得到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
byteArray = blob.getBytes(0,blob.length());
imageIcon=new ImageIcon(byteArray);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
inputStream =blob.getBinaryStream();
BufferedImage image=ImageIO.read(inputStream);
imageIcon= new ImageIcon(image);

无论我使用哪一种,我都只能在Jpanel…上看到第一个blob (图像)显示是什么阻止了其他的斑点被阅读和显示?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private JTextPane createMediaArea() {
    String getMediaEditorData = "select mediaEditor from settingsTable where id=6";
    Statement stmtBlob;
    try {
        stmtBlob = settingsConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        try (ResultSet rsMediaEditor = stmtBlob.executeQuery(getMediaEditorData)) {
            System.out.println("rsMediaEditor is created ");

            while (rsMediaEditor.next()) {
                mediaEditorBlob = rsMediaEditor.getBlob("mediaEditor");
                if (mediaEditorBlob == null) {
                    chosenImageIcon = new ImageIcon("./resources.jpg");
                    scaledChosenImage = chosenImageIcon.getImage().getScaledInstance(100, 100, Image.SCALE_FAST);
                    scaledImageIcon = new ImageIcon(scaledChosenImage);
                    mediaArea.insertIcon(scaledImageIcon);
                } else {
                    mediaEditorBlobLength = mediaEditorBlob.length();
                    System.out.println("mediaEditorBlobLength is : " + mediaEditorBlobLength);
                    /*1st way is to get the blob array .*/
                    /*
                    byte[] mediaEditorByteArray = mediaEditorBlob.getBytes(1L, (int) mediaEditorBlobLength);
                    int mediaEditorByteArrayLength = mediaEditorByteArray.length;
                    System.out.println("mediaEditorByteArrayLength is :" + mediaEditorByteArrayLength);
                    */


                    /*2nd way ..use ImageIO*/
                    InputStream binaryStream = mediaEditorBlob.getBinaryStream();
                    BufferedImage read = ImageIO.read(binaryStream);

                    chosenImageIcon= new ImageIcon(read);

                    scaledChosenImage = chosenImageIcon.getImage().getScaledInstance(100, 100, Image.SCALE_FAST);

                    scaledImageIcon = new ImageIcon(scaledChosenImage);

                    mediaArea.insertIcon(scaledImageIcon);

                }
            }
        } catch (IOException ex) {
            Logger.getLogger(FrontFace.class.getName()).log(Level.SEVERE, null, ex);
        }
        System.out.println("rsMediaEditor closed !");
        stmtBlob.close();
        System.out.println("stmtBlob closed !");
    } catch (SQLException ex) {
        Logger.getLogger(FrontFace.class.getName()).log(Level.SEVERE, null, ex);
    }
    return mediaArea;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-04 21:31:15

在java中,我们使用jdbc与数据库进行交互。参见这里的例子https://docs.oracle.com/javase/tutorial/jdbc/

jdbc用于将数据库行检索到java对象中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43221700

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文