昨晚加班的時(shí)候被隊(duì)友拉著看一個(gè)mybatis的問(wèn)題,耗費(fèi)了我一個(gè)小時(shí)時(shí)間,最后差點(diǎn)沒(méi)被我打死,實(shí)在是覺(jué)得滑稽,今天回家寫下來(lái)跟大伙分享一下。
問(wèn)題現(xiàn)象
Invalid bound statement (not found),看到這個(gè)錯(cuò)我當(dāng)時(shí)就沒(méi)興趣了,我說(shuō)你這不就是xml里沒(méi)寫xxxMapper.java方法對(duì)應(yīng)的語(yǔ)句嗎,這還有啥猶豫的呢,檢查你的xml啊。
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-471794.html
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-471794.html
隊(duì)友說(shuō),哥,我檢查好多遍了,實(shí)在是找不出原因啊,這類問(wèn)題常見(jiàn)的出錯(cuò)原因也就以下幾類:
1.檢查xml文件所在namespace名稱是否和Mapper interface所在的包名一樣;
2.mapper的XML配置路徑是否正確
3.xml里沒(méi)寫xxxMapper.java方法對(duì)應(yīng)的語(yǔ)句
4、5、6
。。。。。。
罷了罷了,出問(wèn)題的時(shí)候都說(shuō)自己沒(méi)問(wèn)題,眼見(jiàn)為實(shí),我還是自己檢查一遍。
差點(diǎn)打臉
我把常見(jiàn)的報(bào)錯(cuò)原因挨著檢查了一遍,愣是沒(méi)發(fā)現(xiàn)問(wèn)題,場(chǎng)面一度尷尬,還debug了半天mabatis的源碼,然并卵,最終我決定解壓jar包看看里面究竟有沒(méi)有那個(gè)xml文件。
?
?乍一看似乎沒(méi)有問(wèn)題,xml是存在的,里面的<Select>也是存在的,停頓三秒鐘。
水落石出
?
mybatis.mapper.upgrade這個(gè)目錄,看起來(lái)有點(diǎn)奇怪,怎么沒(méi)有層級(jí)。
“啊,這還有層級(jí),我以為是目錄的名字呢,我是這么建的”
?
搞半天你小子是建了個(gè)名字叫“mybatis.mapper.upgrade”的目錄,你是怎么想的?
你的mapperLocations設(shè)置的是classpath:mybatis/mapper/upgrade*/*.xml,怎么想mybatis/mapper/upgrade這也是個(gè)多級(jí)目錄?。?/p>
“我參考enterprise那個(gè)服務(wù)弄的,enterprise里的mapper目錄就叫mybatis.mapper.enterprise,也沒(méi)有層級(jí)。"
那個(gè)是有層級(jí)的,只是你的idea設(shè)置了“Compact Middle Packages”導(dǎo)致展示成了mybatis.mapper.enterprise而已,你把"Compact Middle Packages"取消了再看。
?
“是的,取消了以后層級(jí)確實(shí)出來(lái)了"
?
到這問(wèn)題已經(jīng)水落石出,白白浪費(fèi)一小時(shí)時(shí)間,也反映出隊(duì)友的mybatis基礎(chǔ)有待提升,這個(gè)操作著實(shí)有點(diǎn)滑稽。
?
你曾經(jīng)遇到過(guò)隊(duì)友的哪些神奇操作?
?照片拍攝于西安大唐西市
?
?
?
到了這里,關(guān)于案例分享-被*隊(duì)友的mybatis蠢哭的一天的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!