【问题标题】:How to retrieve multiple blob images from database如何从数据库中检索多个 blob 图像
【发布时间】:2017-06-08 11:24:18
【问题描述】:

您好,我正在使用 Spring mvc 和休眠。我想从数据库中检索多个 blob 图像并希望在 jsp 中显示。我尝试了很多,但没有得到富有成效的答案。如果有人提供链接或示例代码,那对我来说会很棒。

【问题讨论】:

  • 如果可以的话,您应该单独保存图像并将它们的路径存储在数据库中。这样,如果您的数据库损坏,图像是安全的,如果图像损坏,数据库是安全的。 + 您有更快的响应时间。
  • 根据项目要求,我将其保存为 BLOB 并希望在 jsp 中显示它。但没有得到如何做到这一点。
  • 你用的是什么数据库?
  • 我正在使用 MySql

标签: java image hibernate spring-mvc jstl


【解决方案1】:

如果您已经在使用 spring,您还可以查看 spring 数据和数据存储库 (http://docs.spring.io/spring-data/commons/docs/current/reference/html/#repositories)。
有很多例子,它应该如何运作:)
如果您使用最新版本,则可以流式传输结果。如果您遇到性能问题,您可以使用它异步加载图像。

【讨论】:

    【解决方案2】:

    我正在使用服务器端此代码对我有用

    弹簧控制器

    @RequestMapping(value ="/getImages", method = RequestMethod.GET)
        @ResponseBody
        public List<Product> getStateList(HttpServletResponse response, HttpServletRequest request) {
            List<Product> image = imageService.getImageList();
            List<Product> imageList= new ArrayList<Product>();
            for (Product m : new ArrayList<Product>(image)) {
                String base64Encoded = javax.xml.bind.DatatypeConverter.printBase64Binary(m.getImage());
                Product imagepath = new Product();
                imagepath.setImagePath(base64Encoded);
                imagepath.setItemName(m.getItemName());
                imageList.add(imagepath);
            } 
            return imageList;
        }
    

    public List<Product> getImageList() {
            String getImageQuery = "FROM Product";
            Query query = sessionFactory.getCurrentSession().createQuery(getImageQuery);
            @SuppressWarnings("unchecked")
            List<Product> imgList = query.list();
            return imgList;
        }
    

    模型类

    @Entity
    @Table(name="imageUpload")
    public class ImageUpload {
    
        @Id
        @Column(name="eloraId")
        private int eloraId;
    
        @Column(name="password")
        private String password;
    
        @Column(name="ownerName")
        private String ownerName;
    
        @Column(name="registeredId",columnDefinition="mediumblob")
        private byte[] registeredId;
    
        @Column(name="hospPanCard")
        private String hospPanCard;
    
        @Column(name="hospRegCert",columnDefinition="mediumblob")
        private byte[] hospRegCert;
    
        @Column(name="ownerPanCard",columnDefinition="mediumblob")
        private byte[] ownerPanCard;
    
        @Column(name="ownerselfDec",columnDefinition="mediumblob")
        private byte[] ownerselfDec;
    
        @Column(name="ownerAddProof",columnDefinition="mediumblob")
        private byte[] ownerAddProof;
    
        @Transient
        private String statusMessage;
    }
    

    【讨论】:

    • 您是否将 blob 图像存储在您的数据库中?以及你将如何在 jsp 页面中显示这个图像?
    • 是的,blob 图像只存储在 database.debug 中,代码是你在 imageList 返回类型中获取图像
    • 希望它有效..在jsp页面中显示图像怎么样?
    • 像这样
    • 你能上传你的模型类吗?
    猜你喜欢
    • 2014-02-19
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2015-06-09
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多