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

 

 

评论
kevlin 2008-05-16
getContentString()这个方法不行啊 ,不信你自己试试!
tcrct 2008-05-06
在javabean里不是有一个getContentString()的方法吗?用这个就可以取你的中文字了.
kevlin 2008-05-04
好多都是想文件,跟图片的处理啊。可是我的是是超过10000个字的中文啊。那要是处理。。
tcrct 2008-04-30
保存到数据库里的是二进制数据,就按二进制的方法把数据取出来不就可以了吗?上网搜一下吧,会有很多的
kevlin 2008-04-28
你好我想问你spring+hibernate保存blob字段可以插入数据库,可是怎么取出数据呢?
发表评论

您还没有登录,请登录后发表评论

tcrct
  • 浏览: 3764 次
  • 性别: Icon_minigender_1
  • 来自: 被遗忘的角落...
  • 详细资料
搜索本博客
最近加入圈子
存档
最新评论