Java 使用Hibernate在数据库中保存图像

Java 使用Hibernate在数据库中保存图像,java,mysql,hibernate,jsp,blob,Java,Mysql,Hibernate,Jsp,Blob,我想使用Hibernate将用户上传的图像存储在数据库中。但是我不知道怎么做。。这是我的密码 JSP: 在Servlet中 Part filePart = request.getPart("filecover"); 在这之后,我不知道如何使用DAO savephoto1方法添加它。。有人能帮我继续吗。。我需要将图像存储在mySQL blob字段中,而不是路径中。当操作大文件(blob)时,通常将它们映射为字节数组: Session session = HibernateUtil.getSess

我想使用Hibernate将用户上传的图像存储在数据库中。但是我不知道怎么做。。这是我的密码

JSP:

在Servlet中

Part filePart = request.getPart("filecover");

在这之后,我不知道如何使用DAO savephoto1方法添加它。。有人能帮我继续吗。。我需要将图像存储在mySQL blob字段中,而不是路径中。

当操作大文件(blob)时,通常将它们映射为字节数组:

Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();

File file = new File("C:\test.png");
byte[] imageData = new byte[(int) file.length()];

try {
    FileInputStream fileInputStream = new FileInputStream(file);
    fileInputStream.read(imageData);
    fileInputStream.close();
} catch (Exception e) {
    e.printStackTrace();
}

ImageWrapper image = new ImageWrapper();
image.setImageName("test.jpeg");
image.setData(imageData);

session.save(image);    //Save the data

session.getTransaction().commit();
HibernateUtil.shutdown();

这里有一个完整的示例,包括读取图像:

我不是试图从path读取图像,而是从用户处获取图像并试图保存用户上传的图像
Part filePart = request.getPart("filecover");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();

File file = new File("C:\test.png");
byte[] imageData = new byte[(int) file.length()];

try {
    FileInputStream fileInputStream = new FileInputStream(file);
    fileInputStream.read(imageData);
    fileInputStream.close();
} catch (Exception e) {
    e.printStackTrace();
}

ImageWrapper image = new ImageWrapper();
image.setImageName("test.jpeg");
image.setData(imageData);

session.save(image);    //Save the data

session.getTransaction().commit();
HibernateUtil.shutdown();