现在的位置: 首页 > 综合 > 正文

二维码写入到数据库

2018年05月01日 ⁄ 综合 ⁄ 共 953字 ⁄ 字号 评论关闭

1,数据库的字段用BLOB接受  hibernate映射blob

2,存储二维码

     public static Blob StorageTwoDimensionCode(TbAssets assets) throws IOException{
        
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();//字节数组流
        code.encoderQRCode(content, outputStream, "png",9);
        
        //这里的Blob是java.sql包中的
        Blob codeimg =  Hibernate.createBlob(outputStream.toByteArray()); //outputStream转一个blob,这里可以接收InputStream和byte[]
        outputStream.flush();
        outputStream.close();
        
        return codeimg; //返回一个blob
    }

3,如果要读出来,在页面显示

public void showCodeImg(){
        TbAssets assets = assetsService.getAssetsById(asid);
        Blob codeimg = assets.getCodeImg();
        try {
            BufferedInputStream inputStream = new BufferedInputStream(codeimg.getBinaryStream()); //把BLOB数据转为二进制流
            BufferedOutputStream outputStream = new BufferedOutputStream(ServletActionContext.getResponse().getOutputStream());
            byte[] b = new byte[1024];
            int len = 0 ;
            while ((len=inputStream.read(b))!=-1) {
                outputStream.write(b, 0, len);
            }
            outputStream.flush();
            inputStream.close();
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

抱歉!评论已关闭.