首页 > 解决方案 > 如何从 MySQL 中检索休眠中的多个图像?

问题描述

**你好,

如何从 List 中检索图像并在 JSP 页面中显示。我尝试了很多方法,但没有得到想要的输出。我将 Hibernate 与 JPA、Servlet 和 MySQL DB 一起使用。

请帮忙。**

这是我的 DAO 课程

public class IndexDAO {
    public List<ItemModel> ls=null;

    public List getAll()
    {
        Session ses=HibernateUtil.getSf().openSession();
        try(ses) {

            String hql=" from com.imagineage.admin.ItemModel ";
            Query q = ses.createQuery(hql);
            ls=q.list();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return ls;
    }

这是模型类。

package com imagineage admin 
import java io Serializable 
import javax persistence Column
import javax persistence Entity
import javax persistence GeneratedValue
import javax persistence Id
import javax persistence Lob
import javax persistence Table
import org hibernate annotations GenericGenerator
import lombok.Getter
import lombok.Setter
import lombok.ToString

@SuppressWarnings("serial")
@Getter
@ToString
@Setter
@Entity
@Table(name="ProductItems")
public class ItemModel implements Serializable {
    @Id
    @GeneratedValue(generator = "MyItemGen")
    @GenericGenerator(name = "MyItemGen",strategy = "com.imagineage.generators.ItemIDGen")
    @Column(name = "Item_ID")
    private String ItemID;
    private String ItemName;
    private Integer ItemQty;
    private Double ItemPrice;
    private String ItemDesc;

    @Lob
    private byte[] ItemImg;
    private String CatFk;



}

标签: javahibernate

解决方案


我自己做的。


<%


        for (ItemModel im : imodel) {
            InputStream inputStream = new ByteArrayInputStream(im.getItemImg());
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[4096];
            int bytesRead = -1;

            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);                  
            }

            byte[] imageBytes = outputStream.toByteArray();
            String base64Image = Base64.getEncoder().encodeToString(imageBytes);
            im.setBase64Image(base64Image);

            inputStream.close();
            outputStream.close();
    %>
    <!-- <div class="col-sm-9 padding-right"> -->
    <!-- <div class="features_items">features_items -->
    <div class="col-sm-3">
        <div class="product-image-wrapper">
            <div class="single-products">
                <div class="productinfo text-center">
                    <img src="data:image/jpg;base64,${ItemModel.base64Image}" alt="" />


推荐阅读