剛才編碼的時(shí)候,我一開始順順利利,一點(diǎn)困難都沒(méi)有,可是后來(lái)突然tomcat總提示我jdbc出現(xiàn)
ResultSet can not re-read row data for column錯(cuò)誤,一開始從這句話上看不出個(gè)所以然來(lái),于是我便一邊一邊的查錯(cuò),可以我覺(jué)得代碼一點(diǎn)問(wèn)題沒(méi)有啊,后來(lái)去google了一下,來(lái)是微軟公司的驅(qū)動(dòng)的兼容性不太好,faint,浪費(fèi)了我小半個(gè)小時(shí)。我把錯(cuò)誤貼出來(lái),真是郁悶。
select column1,column2,column3 from table這句話一點(diǎn)錯(cuò)沒(méi)有,后面我是這么寫的
String N1=Rst.getString("column1");
int N2=Rst.getInt("column3");
String N3=Rst.getString("column2");當(dāng)然,前面的執(zhí)行語(yǔ)句省略了。
這么看也沒(méi)有任何毛病吧,可是出錯(cuò)在那里呢?
大家挺住不要摔倒,我要告訴你們正確答案了----------------------順序錯(cuò)了。。。
抓狂了吧,反正我看到著都想去去撞墻。
然后給個(gè)解決方案吧,出了這個(gè)問(wèn)題超級(jí)郁悶。
下面的解決方案是網(wǎng)上高人說(shuō)的:
(1)如果采用jdbc-odbc驅(qū)動(dòng),那么就必須按照查詢順序來(lái)一次讀取(不論有沒(méi)有image或text類型)
(2)如果采用微軟提供的ms sql server jdbc driver,如果查詢語(yǔ)句中,不存在image或text類型字段,那么可以按照無(wú)序獲取
(3)如果采用微軟提供的ms sql server jdbc driver,如果查詢語(yǔ)句中,存在image或text類型字段,那么就必須按照順序讀取,否則就會(huì)報(bào)告Driver]ResultSet can not re-read row data for column之類的錯(cuò)誤
(4)如果想不查詢語(yǔ)句中有沒(méi)有image或text類型字段,都可以不按照順序獲取,或重復(fù)獲取。那么就必須更換驅(qū)動(dòng),改用第三方的。
我反正懶得再去搜驅(qū)動(dòng)了,直接改順序。。。