1,数据库的字段用BLOB接受 hibernate映射blob
2,存储二维码
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();
}
}