现在的位置: 首页 > 综合 > 正文

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

2018年05月06日 ⁄ 综合 ⁄ 共 601字 ⁄ 字号 评论关闭

  今天把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类型的,最好加上默认值‘  ’

抱歉!评论已关闭.