使用spring mvc和hibernate Rest服务从数据库保存和检索图像

时间:2014-07-04 05:55:04

标签: java web-services hibernate spring-mvc jpa

我正在开发一个应用程序,我需要将Image存储到db并检索。我已经完成了保存部分。我以byte []的形式存储了一个Image.When我正在检索一个返回的图像json

jThiODUwMjE0MDNlNGFlZTI2MTk1YjBlNDFlYjAwYTI2MTI4OWRlOGU4NGU0OTFlZGU2NzAzMjE2ODA0N2RkMDY5NTkyODg4NzliOWE1ODlhNTNhYTM1OTYxNzZjNTc4YjcwMTJiZmUyNmY1NTJkNzI1MjhkN2FhZjU0ZmU0MWZmMzVjMWJhYzU2NmU3Y2M4NTUzMTBlNWMxODRhMjczYTIwZjhhNDk1MzU0NzhhN2YxNDgxMmYxNzRhNTVhMDI4YzVkYmI3NzgzNWMzNjZkYjFiNDgwN2JhNTUyNDEzMDAzZTJlZmRjYjNkNzFkZTIzZDNiMmNjYTgyN2I4ZTgzM

就像这100行。我正在按图片ID进行搜索。

休息服务:

@RequestMapping(value="/getphoto/{clsfdimageid}", method=RequestMethod.GET)
    @ResponseBody
    public List<ClassifiedImages> getPhoto(@PathVariable int clsfdimageid)
    {
        System.out.println("entered....................");

        return classifiedService.getImage(clsfdimageid);
    }

DaoImpl课程:

@Override
    public List<ClassifiedImages> getImage(int clsfdimageid) 
    {
        session = sessionFactory.getCurrentSession();

        String sql = "SELECT * from tblclsfdimages where clsfdimageid = :clsfdimageid";

        Query query= session.createSQLQuery(sql)
                .addEntity(ClassifiedImages.class)
                .setParameter("clsfdimageid",clsfdimageid);

        List<ClassifiedImages> images = query.list();

        return images;
    }

如何以byte []格式检索json中的Image。提前感谢您的建议。

1 个答案:

答案 0 :(得分:2)

即使您没有提供ClassifiedImages,我也假设您有一个字段:

private byte[] image;

您看到的字符串是图像byte[]数组的Base64编码值。它完全没问题,它没有任何问题。 REST和JSON要求将每个包含的字段序列化为String,包含byte []数组。

因此,在客户端代码中,您需要一个Base64解码器来获取编码的String并将其转换回byte[]数组并显示您的图像。