嗨 我要上传的图像,并将其存储在数据库 我使用Spring MVC的&冬眠MultipartFile/BLOB的问题在数据库中保存
这里是模型
import java.sql.Blob;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
@Entity
@Table(name = "article")
public class Article {
@Id
@GeneratedValue
@Column(name = "article_id")
private Long articleId;
@Column(name = "article_name", nullable = false, length=20)
private String articleName;
@Column(name = "article_desc", nullable = false)
private String articleDesc;
@Column(name = "date_added")
private Date addedDate;
@Lob
private Blob content;
public Article() {
}
public Long getArticleId() {
return articleId;
}
public void setArticleId(Long articleId) {
this.articleId = articleId;
}
public String getArticleName() {
return articleName;
}
public void setArticleName(String articleName) {
this.articleName = articleName;
}
public String getArticleDesc() {
return articleDesc;
}
public void setArticleDesc(String articleDesc) {
this.articleDesc = articleDesc;
}
public Date getAddedDate() {
return addedDate;
}
public void setAddedDate(Date addedDate) {
this.addedDate = addedDate;
}
public String toString(){
return this.articleName;
}
public void setContent(Blob content) {
this.content = content;
}
public Blob getContent() {
return content;
}
}
这里是控制器(方法来保存文章)
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(
@ModelAttribute("article") Article article,
@RequestParam("file") MultipartFile file) {
try {
Blob blob = Hibernate.createBlob(file.getInputStream());
article.setContent(blob);
} catch (IOException e) {
e.printStackTrace();
}
try {
articleService.addArticle(article);
} catch(Exception e) {
e.printStackTrace();
}
return "redirect:/articles.html";
}
当我要保存一个新的文章我的JSP形式,我有这样的错误
33266 [HTTP-8080-2] DEBUG org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver - 解决从处理器异常[[email protected]]:org.springframework.beans.ConversionNotSupportedException:未能将类型'java.lang.String'的值转换为所需类型'org.springframework.web.multipart.MultipartFile';嵌套异常是java.lang.IllegalStateException:无法转换类型的值[java.lang.String中]至所需的类型[org.springframework.web.multipart.MultipartFile]:没有匹配的编辑器或转换策略发现 33270 [http-8080-2] DEBUG org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - 解决处理异常[[email protected]]:org.springframework.beans.ConversionNotSupportedException:无法转换将'java.lang.String'类型的值转换为所需的类型'org.springframework.web.multipart.MultipartFile';嵌套的异常是java.lang.IllegalStateException:无法将[java.lang.String]类型的值转换为所需的类型[org.springframework.web.multipart.MultipartFile]:未找到匹配的编辑器或转换策略 33270 [http-8080- 2] DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - 解决处理异常[[email protected]]:org.springframework.beans.ConversionNotSupportedException:未能转换类型'java的值。 lang.String'为所需的类型'org.springframework.web.multipart.MultipartFile';嵌套的异常是java.lang.IllegalStateException:无法将[java.lang.String]类型的值转换为所需的类型[org.springframework.web.multipart.MultipartFile]:没有匹配的编辑器或转换策略发现
可以任何身体帮我
它的工作对我很好,当我转换BLOB为byte []并映射它作为@LOB – 2011-03-19 11:05:02