正在做代碼改造,使用mybatis+sybase進(jìn)行數(shù)據(jù)庫(kù)操作,運(yùn)行過(guò)程中,提示以下報(bào)錯(cuò):

java.io.IOException: JZ0SL: Unsupported SQL type 1111.本篇博客主要是講述該解決方案。
| 軟件 | 版本 |
|---|---|
| mybatis | 3.5.3 |
| sybase驅(qū)動(dòng) | jConnect4 |
先總結(jié)一下問(wèn)題原因:
這個(gè)問(wèn)題主要是在
sybase驅(qū)動(dòng)jConnect4出現(xiàn)的。主要原因是:當(dāng)insert、update語(yǔ)句的變量的值含有null值,就會(huì)報(bào)錯(cuò)。因?yàn)樵?code>mybatis里面,如果參數(shù)出現(xiàn)了null值,則在指定jdbcType類(lèi)型的參數(shù)時(shí),mybatis默認(rèn)設(shè)置為jdbcType.OTHER,導(dǎo)致Sybase數(shù)據(jù)庫(kù)無(wú)法識(shí)別此格式。

接下來(lái),我們可以看源碼:

從上圖源碼可以看出,是做了判斷,如果為空,就取org.apache.ibatis.session.Configuration#getJdbcTypeForNull的值。那這個(gè)值是多少,我們切到源碼,從下圖可以看出:
里面設(shè)置了,如果jdbcType的值為null的時(shí)候,就默認(rèn)使用為org.apache.ibatis.type.JdbcType#OTHER,其值為java.sql.Types#OTHER,如下圖:


#{resultStr,jdbcType=VARCHAR}2. 設(shè)置默認(rèn)值,不為空
這里我是進(jìn)行了第一種結(jié)果,運(yùn)行之后,問(wèn)題解決。
遇到問(wèn)題,除了知道解決方案,為了技術(shù)進(jìn)步,我們也要考慮為什么是這樣的報(bào)錯(cuò)。這樣日積月累,技術(shù)能力就會(huì)獲得長(zhǎng)足的進(jìn)步。

如果我的文章對(duì)大家產(chǎn)生了幫忙,可以在文章底部點(diǎn)個(gè)贊或者收藏;
如果有好的討論,可以留言;
如果想繼續(xù)查看我以后的文章,可以點(diǎn)擊關(guān)注
也可以掃描以下二維碼,關(guān)注我的公眾號(hào):楓夜之求索閣,查看我最新的分享!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁(yè)標(biāo)題:問(wèn)題解決系列:從源碼講解為什么是‘JZ0SL-創(chuàng)新互聯(lián)
當(dāng)前URL:http://www.chinadenli.net/article10/docego.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、移動(dòng)網(wǎng)站建設(shè)、ChatGPT、云服務(wù)器、虛擬主機(jī)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容