求助 java的Hibernate连接数据库生成实体对象和映射文件时的错误,

com.microsoft.sqlserver.jdbc.SQLServerException: 接收 TDS 预登录响应时发生 I/O 错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.DBComms.Prelogin(Unknown Source)
at com.microsoft.sqlserver.jdbc.DBComms.<init>(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:99)
at com.genuitec.eclipse.sqlexplorer.actions.LoginProgress$Login.run(LoginProgress.java:48)
at java.lang.Thread.run(Thread.java:619)
在java中可以连接数据库,就是将要生成实体和映射是一直错误 ,

我只有哪些悬赏,
我有点急事,

如何解决【接收 TDS 预登录响应时发生 I/O 错误】的问题

其实与com.microsoft.sqlserver.jdbc.SQLServerException: Software caused connection abort: recv failed
是一回事!都是端口问题 下面讲讲怎么回事吧,数据sql2005中的错误

SQL Server 2005连接数据库出现【接收 TDS 预登录响应时发生 I/O 错误】的问题,很可能是你数据库连接端口的问题。SQL Server 2005数据库默认端口为1433,但是通常情况下,这个默认端口是关闭的。很多人就连接1434端口,1434端口是udp的端口,你再用1434端口连接SQL Server 2005,就会发生冲突。这个时候就会报【接收 TDS 预登录响应时发生 I/O 错误】。

注意:只有是你用1434端口连接数据库的时候,出现【接收 TDS 预登录响应时发生 I/O 错误】才可以用下面的方法解决错误。如果你是用1433端口连接数据库,那应该就不会出现这个问题啦。出现其它问题的话,还可以测试一下你的1433端口是否打开。

解决办法:

第一步:测试端口

开始菜单—>运行cmd—>在命令提示符下输入:telnet 127.0.0.1 1433

出现以下问题

-------------------------------------------------------------------------------------------------------

C:\Documents and Settings\Administrator>telnet 127.0.0.1 1433
正在连接到127.0.0.1...不能打开到主机的连接, 在端口 1433: 连接失败

C:\Documents and Settings\Administrator>

-------------------------------------------------------------------------------------------------------

则说明1433端口没有打开。

第二步:打开1433端口

开始菜单—>程序—>Microsoft SQL Server 2005—>配置工具—>SQL Server外围应用配置器—>服务和连接的外围应用配置器—>Datebase Engine—>远程连接—>选择【本地连接和远程连接】—>选择【同时使用TCP/IP和named pipes】—>点击应用确定—>断开SQL Server 2005连接,重新连接SQL Server 2005 —>停止服务—>启动服务—>OK!

第三步:再次测试1433端口

重复第一步操作就可以啦,如果没有出现第一步中出现的问题,那就是打开啦!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-26
类型不一致需要注意
但这个提示好像找不到代码的解析文件
你看下包是否缺失
第2个回答  2010-11-26
很多时候hibernate自动生成的实体和映射文件里的字段类型和数据库中的类型不一样 要手动去改下