ابتدا یک جدول در MySQL درست کنید که یک ستون از نوع longblob داشته باشد (برای ذخیره سازی فایل ها درون آن):
CREATE DATABASE `filedb`;
CREATE TABLE `files_upload` (
`upload_id` int(11) NOT NULL AUTO_INCREMENT,
`file_name` varchar(128) DEFAULT NULL,
`file_data` longblob,
PRIMARY KEY (`upload_id`)
)
سپس یک کلاس Entity برای map کردن جدول درست کنید و یک فیلد از نوع آرایه byte درون آن تعریف کنید:
package net.codejava.fileupload.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "FILES_UPLOAD")
public class UploadFile {
private long id;
private String fileName;
private byte[] data;
@Id
@GeneratedValue
@Column(name = "FILE_ID")
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Column(name = "FILE_NAME")
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
@Column(name = "FILE_DATA")
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
}
حالا می توانید با استفاده از hibernate فایل مورد نظر خود را در پایگاه داده ذخیره کنید:
UploadFile uploadFile = new UploadFile();
uploadFile.setFileName(aFile.getOriginalFilename());
uploadFile.setData(aFile.getBytes());
sessionFactory.getCurrentSession().save(uploadFile);