首先在spring的配置文件中加入以下代码:
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true">
并且将lobHandler加入到SessionFactory中去,即在
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
...
中加入<property name="lobHandler" ref="lobHandler"></property>
...
</bean>关联起来,到这里spring里的配置已经完成.
第二步在生成xxx.hbm.xml文件后,对数据库里是blob类型的node,将其的type值改为"org.springframework.orm.hibernate3.support.BlobByteArrayType".(如果是CLOB的话则改为org.springframework.orm.hibernate3.support.ClobStringType
)再将xxx.java里相对应的属性类型改为byte[](如果是clob的话就改为String),重新生成set,get方法.
在java代码中只需要像平时那样就可以保存数据了.即getHibernateTemplate().save(bean);bean为Vo.
applicationContext.xml:
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />
xxx.hbm.xml
<property name="content" type="org.springframework.orm.hibernate3.support.BlobByteArrayType"> <column name="content" /> </property>
Vo
private byte[] content;
public void setContent(byte[] content) {
this.content = content;
}
public byte[] getContent() {
return content;
}
public String getContentString(){
if(content.length > 0)
return new String(content,"GBK"); //或UTF-8
else
return "";
}