gpt4 book ai didi

java - 使用 Hibernate 将图像保存在数据库中

转载 作者:行者123 更新时间:2023-11-29 02:57:46 24 4
gpt4 key购买 nike

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

JSP:

<form action="Image" method="post" enctype="multipart/form-data"> <br><br>
<table>
<tr>
<td>UserName: </td>
<td width='10px'></td>
<td><input type="text" name="unname"/></td>
</tr>

<tr>
<td>Upload: </td>
<td width='10px'></td>
<td><input type="file" name="filecover" value="Upload"/></td>
</tr>
<tr>
<td><input type="submit" value="Submit" name="usubmit"></td>
</tr>

</table>
</form>

道:

public void savePhoto1(String uname, Blob photo1)
{
Session session = NewHibernateUtil.getSessionFactory().openSession();
Transaction trans =null;
Newsfeed nf = new Newsfeed(); // Pojo Class
try
{
trans=session.beginTransaction();
nf.setUsername(uname);
nf.setPhoto1(photo1);
trans.commit();

}
catch (Exception e)
{

}
}

在 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();

你有一个完整的例子,包括阅读图像,在这里:http://howtodoinjava.com/2013/08/30/hibernate-example-of-insertselect-blob-from-database/

关于java - 使用 Hibernate 将图像保存在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34218805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com