【问题标题】:Java viewing image path from MYSQL and displaying that image in java tipsJava 从 MYSQL 查看图像路径并在 Java 提示中显示该图像
【发布时间】:2012-02-20 11:26:48
【问题描述】:

我可以在 phpMyAdmin 中将使用 JFileChooser 选择的图像保存到 MySQL 中的 BLOB 列,但是如何查看该 BLOB 并将其加载到 JFrame 中以便在 Java 中显示?任何代码都会有所帮助。

【问题讨论】:

  • 你试过什么?为什么你可以写一个 blob,但不能读一个?
  • 你目前使用的是什么代码?

标签: java mysql swing


【解决方案1】:

从数据库中检索 BLOB 并使用 ImageIO.read 创建一个 BufferedImage

请参阅here了解如何绘制图像。

【讨论】:

    【解决方案2】:

    Dmitri 上面列出的解决方案可以解决您的问题,这是肯定的。当我是新手程序员时,我曾经有过同样的想法,但是将图像存储在数据库中根本不是一个好主意,因为它们存在性能问题。最好将图像文件位置路径存储到数据库中并将图像存储在文件系统中。这将节省您的大量处理并提高您的性能。为了更好地理解,请阅读这个精彩的讨论

    Store image in database Vs File System.

    【讨论】:

    • 取决于您的应用程序(几乎与其他所有应用程序一样)。根据图像的数量和大小以及它们的使用方式,文件系统或数据库方式可能会更好地提高性能。通常情况下,性能差异可以忽略不计,这取决于哪种方式更方便管理数据。同样,这取决于您的具体应用。
    【解决方案3】:

    这是一个代码段,显示 JLabel 对象中的图片,该对象以 blob 格式存储在 DB 中。

    Blob sqlphoto = (Blob) rs.getBlob("photo");
    if (sqlphoto != null) {
        InputStream photo = sqlphoto.getBinaryStream();
        Image image = null;
        try {
            image = ImageIO.read(photo);
            jLabel31.setIcon(new ImageIcon(image));
        } 
        catch (IOException ex) {
            Logger.getLogger(ModifyClerk.class.getName()).log(Level.SEVERE, null, ex);
        }
    

    }

    【讨论】:

    • 如果出现 IOException,ImageIcon 会是什么?最后一行应该在 try 块内。
    • 没有。它应该在 try 块中。否则,您将使用空图像构造一个 ImageIcon,这将导致 NullPointerException。
    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多