如何在数据库中保存 blob 文件
How to save blob files in database
我有这个实体class
@Entity
public class ScannedFile {
@Column(nullable = true)
private Blob content;
@Column(nullable = true)
private byte[] photo;
}
并且我尝试将图像文件保存在数据库中。我找到了两种解决方案,并且都尝试过。但是 none 对我有用。这是我试过的
1.使用字节数组
private Part file1;
public String upload() throws IOException{
InputStream inputStream = file1.getInputStream();
ScannedFile created = new ScannedFile();
created.setId(this.scannedFile.getId());
byte[] photo = IOUtils.toByteArray(inputStream);
created.setPhoto(photo);
ScannedFile newScannedFile = this.scannedFileRepository.save(created);
}
问题:上传的照片没有保存在数据库中。但它也没有给出任何错误。我在这里错过了什么。
2。使用 blob
private static void initSession() {
Configuration configuration = new Configuration().configure();
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
session = sessionFactory.openSession();
session.beginTransaction();
}
private static void endSession() {
session.getTransaction().commit();
session.close();
StandardServiceRegistryBuilder.destroy(serviceRegistry);
}
private Part file1;
public String upload() throws IOException{
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
InputStream inputStream = file1.getInputStream();
Blob blob = Hibernate.getLobCreator(session).createBlob(inputStream, 200);
ScannedFile created = new ScannedFile();
created.setContent(blob);
ScannedFile newScannedFile = this.scannedFileRepository.save(created);
endSession();
}
问题: 我收到此错误 hibernate.cfg.xml not found
。但我真的不想使用这个 xml 文件。那么我怎样才能摆脱这个错误并将上传的图像保存在数据库中。
注意:我正在学习 spring 和 jsf 这几天。我在同一应用程序中同时使用 jsf 和 spring。我也在用h2数据库。
我有你的问题。在 @Entity
中使用 @Lob
以获得 private byte[] photo;
我有这个实体class
@Entity
public class ScannedFile {
@Column(nullable = true)
private Blob content;
@Column(nullable = true)
private byte[] photo;
}
并且我尝试将图像文件保存在数据库中。我找到了两种解决方案,并且都尝试过。但是 none 对我有用。这是我试过的
1.使用字节数组
private Part file1;
public String upload() throws IOException{
InputStream inputStream = file1.getInputStream();
ScannedFile created = new ScannedFile();
created.setId(this.scannedFile.getId());
byte[] photo = IOUtils.toByteArray(inputStream);
created.setPhoto(photo);
ScannedFile newScannedFile = this.scannedFileRepository.save(created);
}
问题:上传的照片没有保存在数据库中。但它也没有给出任何错误。我在这里错过了什么。
2。使用 blob
private static void initSession() {
Configuration configuration = new Configuration().configure();
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
session = sessionFactory.openSession();
session.beginTransaction();
}
private static void endSession() {
session.getTransaction().commit();
session.close();
StandardServiceRegistryBuilder.destroy(serviceRegistry);
}
private Part file1;
public String upload() throws IOException{
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
InputStream inputStream = file1.getInputStream();
Blob blob = Hibernate.getLobCreator(session).createBlob(inputStream, 200);
ScannedFile created = new ScannedFile();
created.setContent(blob);
ScannedFile newScannedFile = this.scannedFileRepository.save(created);
endSession();
}
问题: 我收到此错误 hibernate.cfg.xml not found
。但我真的不想使用这个 xml 文件。那么我怎样才能摆脱这个错误并将上传的图像保存在数据库中。
注意:我正在学习 spring 和 jsf 这几天。我在同一应用程序中同时使用 jsf 和 spring。我也在用h2数据库。
我有你的问题。在 @Entity
中使用 @Lob
以获得 private byte[] photo;