hibernate映射clob blob字段[Java编程]
本文“hibernate映射clob blob字段[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在很多情形下要存储大型字符串大概二进制数据如图片等hibernate也供应了对blob和clob范例的支持
blob采取单字节存储合适保存二进制数据,如图片文件clob采取多字节存储合适保存大型文本等
在mssql中 image和ntext辨别对应着blob和clob
表映射文件对两种范例的写法
关于blob格局的映射范例为type="java.sql.Clob";
对bean的写法没辨别直接生成getter和setter
保存一个图片的二进制内容
User user=new User();
FileInputStream image=new FileInputStream("image.jpg");
Blob img=Hibernate.createBlob(image);
user.setImage(img);
Clob desc=Hibernate.createClob("abcd");
user.setDesc(desc);
save(user);
////保存blob和clob范例完成
读取:
读取blob范例二进制数据
Blog img=user.getImage();
InputStream inputs=img.getBinaryStream();//获得二进制流
写入文件
FileOutStream fos=new FileOutStream("tempimg.jpg");
byte [] buffer=new byte[102400];
int len;
while((len=inputs.read(buffer))!=-1)
{
fos.write(buffer,0,len);
}
fos.close;
inputs.close;
//oracle履行会呈现以下错误
streams type cannot be userd in batching
Orcale JDBC不答应流操作以批量方法举行(oracle blob采取流机制作为数据读写方法)
user.setImage(Hibernate.createBlob(new byte[1]));
user.setDesc(Hibernate.careteClob(" "));
session.save(user);
session.flush();
session.refresh(user,LockMode.UPGRADE);
向里面blob写入实际内容同上
写入clob
oracle.sql.Clob clob=user.getDesc();
Writer writer=clob.getCharacterOutputStream();
writer.write("abcd");
session.save(user);
以上是“hibernate映射clob blob字段[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |