当前位置:首页 > Hibernate > 正文内容

Hibernate读取Blob乱码

canca18年前 (2007-10-12)Hibernate630

        在项目中又遇到乱码了!这我已经司空见惯了。呵呵.说说Hibernate读取Blob时为什么会乱码吧!!

        说Blob乱码的,都一定是用blob来存放文本类型的东东吧!如果是二进制的,没什么乱码与不乱码之分啦。问题就出现在这里。blob存放是以二进制来存放的。当然,你写进数据库时是以gb2312编码进行写入。但Hibernate读取出来时转成String类型.Hibernate会进行一些底层处理有如:new String(str.getBytes("iso8859-1"),"gb2312"); 它这种操作是无法还原的。

          解决方案:

           1.将数据库中用bolb类型存放字符的通通改成MediumText或LongText类型。

           2.改Hibernate包。

           3.修改Hibernate映射表。将blob类型映射为blob,再在DAO里进行处理。

呵呵,第二种解决方案留给专家去做吧!!第三种没试不过一定可行的。

 

CAnca Torvals

2007.10.12

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/534.html

标签: Hibernate
分享给朋友:

“Hibernate读取Blob乱码” 的相关文章

如何把Hibernate2.1升级到Hibernate3.0?

1.1 Hibernate API 变化 1.1.1 包名 1.1.2 org.hibernate.classic包 1.1.3 Hibernate所依赖的第三方软件包 1.1.4 异常模型 1.1.5 Session接口 1.1.6 createSQLQuery() 1.1.7 Lifecycle...

java.lang.IllegalAccessError: tried to access method net.sf.ehcache.CacheManager.()V from class org.hibernate.cache.EhCacheProvider

今天把项目从Tomcat下转移到JBOSS了,启动JBOSS服务器之后出了,控制台输出了java.lang.IllegalAccessError: tried to access method net.sf.ehcache.CacheManager.<init>()V from clas...

hibernate's hbm 文件配置

外键:<many-to-one> 被外键引用:<set>...

hibernate oracle char character 只查出一个字符

public List queryTradeConfirmBusinFlag() {            final String sql&nbs...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。