修改Tds驅(qū)動Url聲明解決兩個(gè)Sql Server問題
問題1:JDBC Sql Server varchar的取出最大長度限制
環(huán)境: JDBC驅(qū)動inet tds驅(qū)動(版本不明),SQLServer2K
問題癥狀:對于數(shù)據(jù)庫聲明為varchar的長度大于256的字段,可以正常保存,但是無法取出多于256字符以后的內(nèi)容
問題2:使用Hibernate映射時(shí)0長度字符串保存后,取出多加了一個(gè)空格
環(huán)境:inet tds驅(qū)動Hibernate2.1.8,SQL Server2K
問題癥狀:保存0長度字符串后,取出增加了多余的空格。
以上兩個(gè)問題都是因?yàn)闆]有使用最新的通訊協(xié)議引起的,修改URL聲明方式如下:
jdbc:inetdae7:127.0.0.1:1433?database=xxx
問題解決,收工。
ps:發(fā)現(xiàn)協(xié)議inetdae時(shí),數(shù)據(jù)庫字段為Null時(shí),Hibernate取出聲明為基本類型(例如boolean)的對象屬性并不會報(bào)錯(cuò),實(shí)際上在其他數(shù)據(jù)庫如Oracle和新協(xié)議上是會報(bào)錯(cuò)的。為了避免此類問題出現(xiàn),最好還是嚴(yán)格遵守:Hibernate聲明對象的基本類型屬性,一定不能在數(shù)據(jù)庫端置為空值。
ps2:在解決以上問題中發(fā)現(xiàn),Oracle居然對傳人0長度字符串,會轉(zhuǎn)為空值,不知道是為了節(jié)省空間還是別的什么理由。-_-!!!
(全文完)
posted on 2006-02-07 08:49 wolfsquare 閱讀(552) 評論(0) 編輯 收藏 所屬分類: 企業(yè)應(yīng)用 、其他技術(shù)