修改Tds驱动Url声明解决两个Sql Server问题

问题1:JDBC Sql Server varchar的取出最大长度限制

环境: JDBC驱动inet tds驱动(版本不明),SQLServer2K

问题症状:对于数据库声明为varchar的长度大于256的字段,可以正常保存,但是无法取出多于256字符以后的内容

问题2:使用Hibernate映射时0长度字符串保存后,取出多加了一个空格

环境:inet tds驱动Hibernate2.1.8,SQL Server2K

问题症状:保存0长度字符串后,取出增加了多余的空格。

以上两个问题都是因为没有使用最新的通讯协议引起的,修改URL声明方式如下:

jdbc:inetdae7:127.0.0.1:1433?database=xxx

问题解决,收工。

ps:发现协议inetdae时,数据库字段为Null时,Hibernate取出声明为基本类型(例如boolean)的对象属性并不会报错,实际上在其他数据库如Oracle和新协议上是会报错的。为了避免此类问题出现,最好还是严格遵守:Hibernate声明对象的基本类型属性,一定不能在数据库端置为空值。

ps2:在解决以上问题中发现,Oracle居然对传人0长度字符串,会转为空值,不知道是为了节省空间还是别的什么理由。-_-!!!

全文完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值