如何使用spring mvc将图像插入MySql数据库?

时间:2016-07-24 18:13:40

标签: mysql hibernate jsp spring-mvc image-uploading

我将为我的学期项目开发一个电子商务商店,我为此目的使用spring mvc,hibernate和jsp。现在需要从客户端上传图像并将其放入MySql数据库中。我已经尝试过,但不知何故不能做这个工作。

这就是我创建数据库的方式

create table PRODUCT_INFORMATION(
productName varchar(255) not null primary key,
productShortInformation varchar(500),
productFullInformation varchar(60000),
productImage longblob
);

这是我的模型类ProductInformation.java

@Entity
@Table(name="PRODUCT_INFORMATION")
public class ProductInformation {
    @Id
    private String productName;
    private byte[] productImage;
    private String productShortInformation;
    private String productFullInformation;
    //getter and setter
}

这是我的控制器类AddProductController.java

@Controller
@RequestMapping(value="/manager")
public class AddProductController extends HttpServlet {

    @RequestMapping("/addProduct.html")
    public ModelAndView AddingProduct() {
        ModelAndView model = new ModelAndView("AddProduct");        
        return model;
    }

    @RequestMapping("/addingProductSuccess.html")
    public ModelAndView addProductSuccess(HttpServletRequest request)  {
        ModelAndView model = new ModelAndView("AddingProductSuccess");
        ProductInformation productInformation = new ProductInformation();

        productInformation.setProductName(request.getParameter("productName"));
        productInformation.setProductShortInformation(request.getParameter("productShortInformation"));
        productInformation.setProductFullInformation(request.getParameter("productFullInformation"));

        try {
            SessionFactory sessionFactory  = new Configuration().configure().buildSessionFactory();
            org.hibernate.Session session = sessionFactory.openSession();
            session.beginTransaction();
            session.save(productInformation);
            session.getTransaction().commit();
            session.close();
        } catch(Exception e) {
            System.out.println("Exception on storing in database: " + e.toString());
            return new ModelAndView("AddProduct");
        }

        return model;
    }

}

这是一个AddProduct.jsp视图

<form action="/E-CommerceDemo/manager/addingProductSuccess.html" />
    <table>
        <tr><td><input type="text" name="productName" />   </td> </tr>
        <tr><td><input type="text" name="productShortInformation" />  </td> </tr>
        <tr><td><input type="text" name="productFullInformation" />   </td> </tr>
        <tr><td><input type="file" name="productImage" /> </td> </tr>
        <tr><td><input type="submit"/></td></tr>
`   </table>
</form>

现在在AddProduct.jsp文件中,当我点击提交按钮时,我想保存所有保存在数据库中的信息。我在控制器类(name = AddProductController.java)addProductSuccess()fucntion中尝试了这个操作。它插入productName,productShortInformation和productFullInformation。但无法找到如何插入图像。提前谢谢。

0 个答案:

没有答案