异常Underlying input stream returned zero bytes 解决办法

本文探讨了在SQL Server中使用Text类型字段遇到的问题,特别是当字段包含Null值时会出现异常。文中提供了两种解决方案:一是设置字段默认值为空字符串;二是在JavaBean中处理避免保存Null值。

  今天把mysql的配置文件换成了SQL Server,没想到除了问题。以下是在网上找到的在SQL   Server表中使用了Text类型,如果表中Text类型包含Null时,检索Text类型中包含Null的记录就出现
[Microsoft][SQLServer 2000 Driver for JDBC]Underlying input stream returned zero bytes 的异常了。

从网上搜集资料来看,由于jdbc的bug,所以不能将一个"NULL"值和一个""(empty)存储在text类型的字段中。
解决办法
1:可以在表结构中设置字段的默认值为" "(one char)。
2在JavaBean中增加处理,确保在Text类型的字段中不会保存Null值
微软表示下一个版本将修正这个bug。

总结Hibernate虽说有可以转换多个数据库,但mysql转换SQL Server 还真的有几个地方要注意的。

1、Pojo配置文件

 mysql:<class name="com.ierd.pojo.Employee" table="tbEmployee" catalog="storeDB">

 mssql:<class name="com.ierd.pojo.Employee" table="tbEmployee" catalog="storeDB" schema="dbo">

2、mssql字典为text类型的,最好加上默认值‘  ’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值