如何从MySQL休眠中检索多个图像?

时间:2020-05-21 17:24:04

标签: java hibernate

**你好,

如何从列表中检索图像并在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;



}

1 个答案:

答案 0 :(得分:0)

我自己做的。


<%


        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="" />

相关问题