spring+hibernate保存blob字段

首先在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 "";
	}

 

 

你可能感兴趣的:(java,spring,Hibernate,bean,orm)