Java 如何使用HIbernate作为BLOB将此图像保存到MySQL数据库?

Java 如何使用HIbernate作为BLOB将此图像保存到MySQL数据库?,java,mysql,hibernate,jsp,servlets,Java,Mysql,Hibernate,Jsp,Servlets,如何使用Hibernate将上传的图像保存到MySQL数据库?我是否需要将此图像转换为字节数组,或者是否有其他方法来执行此操作 try { // parses the request's content to extract file data List formItems = upload.parseRequest(request); Iterator iter = formItems.iterator(); // iterates over form's f

如何使用Hibernate将上传的图像保存到MySQL数据库?我是否需要将此图像转换为字节数组,或者是否有其他方法来执行此操作

try {
    // parses the request's content to extract file data
    List formItems = upload.parseRequest(request);
    Iterator iter = formItems.iterator();

    // iterates over form's fields
    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();
        // processes only fields that are not form fields
        if (!item.isFormField()) {
            String fileName = new File(item.getName()).getName();
            String filePath = uploadPath + File.separator + fileName;
            File storeFile = new File(filePath);

            System.out.println("Image file name is :" + fileName);

            // saves the file on disk
            item.write(storeFile);

        }
    }
}

Java for MySQL中Blob的等效映射类型是
byte[]
。您应该在Hibernate中使用相应的方言,并对属性进行如下注释

@Lob
@Column(name = "data", columnDefinition = "blob", length = 16777215)
public byte[] getData() {
  return this.data;
}

Java for MySQL中Blob的等效映射类型是
byte[]
。您应该在Hibernate中使用相应的方言,并对属性进行如下注释

@Lob
@Column(name = "data", columnDefinition = "blob", length = 16777215)
public byte[] getData() {
  return this.data;
}

这是一个演示示例,请仔细阅读并询问您是否有任何问题

对上述示例的解释:


这是一个演示示例,请仔细阅读并询问您是否有任何问题

对上述示例的解释:


首先我需要将此图像转换为字节吗?或者还有其他方法吗?我使用了
byte[]fileData=FileUtil.getBytes(文件)如果您使用Struts,它会直接将文件存储到ActionBean,您不需要与commons-fileupload等其他框架混淆。首先,我需要将此图像转换为字节吗?或者还有其他方法吗?我使用了
byte[]fileData=FileUtil.getBytes(文件)如果您使用Struts,它会直接将文件存储到ActionBean,您不需要与commons fileupload等其他框架混淆。