使用s2sh框架。实体类:
public class Photo implements java.io.Serializable {
// Fields
private Integer id;
private Album album;
private Timestamp createtime;
private String name;
private String contentType;
private Blob thumbnail;
private Blob content;
private Integer orderid;
private List<Mark> facelookmarks = new ArrayList<Mark>();
private Set facelookactivities = new HashSet(0);
private List<Comment> facelookcomments = new ArrayList<Comment>();
}
Photo.hbm.xml
<property name="content" type="java.sql.Blob">
<column name="CONTENT" />
</property>
<property name="thumbnail" type="java.sql.Blob">
<column name="THUMBNAIL" />
</property>
action
FileInputStream fis = new FileInputStream(this.photoUpload);
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int n;
while ((n=fis.read(b)) != -1) {
out.write(b,0,n);
}
fis.close();
out.close();
byte[] content = out.toByteArray();
this.photo.setAlbum(this.album);
this.photo.setContentType(this.photoUploadContentType);
this.photo.setCreatetime(new Timestamp(System.currentTimeMillis()));
this.photo.setOrderid(orderId);
this.photo.setContent(Hibernate.createBlob(content));
this.photo.setThumbnail(Hibernate.createBlob(thumbnail));
this.photoUpload为上传的文件。将得到的byte[]数组通过Hibernate.createBlob方法赋值给content和thumbnail属性。
PhotoDAO
getSession().save(photo);
getSession().flush();// 调用flush方法,强制Hibernate立即执行insert sql
getSession().refresh(photo, LockMode.UPGRADE);// 通过refresh方法,强制Hibernate执行select for update
这样在hibernate中就讲图片插入到数据库中了。
在JDBC中,需要先把BLOB字段插入空值,通过oracle.sgl.BLOB.empty_lob()方法构造空Blob对象。再次从库表读出,获得Blob句柄,然后将byte[]数组写入blob。
分享到:
相关推荐
从oracle中的BLOB类型字段中取出照片,转存到mysql数据库中。思路是现将oracle中的照片存储在本地文件夹,在将本地图片上传到mysql中。
向数据库插入blob数据实例源码--在mysql和oracle中通过.rar
此文档是对于oracle数据库中blob类型字段二进制大对象的读取和解析
很多朋友在操作oracle数据库的clob,blob字段时不知道怎么插入和使用,这里提供读写范例。
Mybatis 处理 CLOB、BLOB 类型数据
插入Blob类型的数据(如:图片、音乐、电影)到Oracle数据,从Oracle数据库取出Blob类型的数据到本地磁盘。
利用Java向Oracle中插入图片(BLOB)文件
简单写的一个小工具,把图片存入oracle中,按clob和blob两种方式存储,并读取图片
本文给大家浅析mybatis oracle blob类型字段的保存与读取,blob字段是指二进制大对象,用来存储大量文本数据。感兴趣的朋友一起学习吧
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
Python如何操作Oracle的Blob字段,
BLOB和CLOB的区别以及在ORALCE中的插入和查询操作
本资源实现的一个用java代码实现数据二维码图片的生成,用触发器实现将生成的二维码图中转换成blob格式并插入到数据表中
SSH2向Oracle中的Blob列插入数据的项目详解
5、DATE数据类型,使用7个字节固定长度,每个字节分别存储世纪,年,月,日 ,时,分,秒,ORACLE中SYSDATE函数的功能是返回当前的日期和时间 6、TIMESTAMP数据类型,和DATE相似,但是这个类型的秒精确到小数点后6...
Oracle接收长度大于4000的字符串 Oracle接收长度大于4000的字符串
针对oracle中blob字段的操作,能批量快速的插入大字段,效率非常高
在通过拼组sql语句来实现... 下面就此问题的解决办法,做一下小结: 我们可以通过创建单独的OracleCommand来进行指定的插入,即可获得成功,这里仅介绍插入clob类型的数据,blob与此类似,这里就不介绍了,下面介绍两
今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。 网上说用流来处理,没有这么做。这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了。 下面是这段代码: if(...
delphi利用ADO连接oracle,并在数据库中插入了一条记录和上传了一个文档