mybatis接口綁定失效的解決
mybatis接口綁定失效
出現(xiàn)錯(cuò)誤:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
解釋?zhuān)哼@是mybatis所報(bào)的異常,意思是接口綁定失效
原因:
1.項(xiàng)目編譯完成后mapper接口和mybatis的xml不在同一個(gè)目錄下導(dǎo)致接口綁定失敗。
2.如果是maven工程,使用idea編輯工程,會(huì)出現(xiàn)xml文件無(wú)法被編譯到target當(dāng)中,這種情況有兩種解決,首先將和mapper接口在一起的xml文件放在resources文件夾下,這種情況下需要將xml文件所在的包名改成和mapper所在包名一致,還有一種情況就是在pom文件中將xml文件所在的目錄標(biāo)記為資源路徑。
3.配置文件的路徑寫(xiě)的有問(wèn)題,在spring整合mybatis配置中指定mybatis的xml路徑出錯(cuò)尤其注意如果如果resources包下和java包下路徑相同一定要在路徑前加classpath:來(lái)區(qū)別兩者的不同,不然也會(huì)出現(xiàn)接口綁定失效的問(wèn)題。
4.mybatis的xml文件中標(biāo)簽的namespace和對(duì)應(yīng)mapper接口的全限定類(lèi)名(包名+類(lèi)名,不含類(lèi)的后綴名)不一致
5.mybatis的xml文件中標(biāo)簽的id與對(duì)應(yīng)mapper接口中的方法名不一致
與對(duì)應(yīng)mapper接口中的方法名不一致**
小結(jié)一下
大體總結(jié)為mapper接口和xml之間關(guān)聯(lián)出錯(cuò),還有就是配置文件對(duì)xml所在文件路徑指定錯(cuò)誤,最后就是在編譯后mapper接口和mybatis的xml不在同一個(gè)文件夾中。
mybatis接口綁定方法
通常情況下,使用Mapper.xml是無(wú)法實(shí)現(xiàn)多個(gè)參數(shù)的傳遞,除非傳入Map或者是對(duì)象,這個(gè)時(shí)候我們就可以使用接口綁定的方法傳入多個(gè)參數(shù),
實(shí)現(xiàn)方法
第一步:創(chuàng)建一個(gè)與XML包名,類(lèi)名完全相同的接口,包名類(lèi)名即XML中配置的namespace
第二步:創(chuàng)建一個(gè)與XML中ID相同的方法,然后設(shè)置參數(shù),
public interface LogMapper { List<Log> selAll(); }
第三步:在 mybatis.xml 中使用<package>進(jìn)行掃描接口和 mapper.xml
<mappers> <package name="com.bjsxt.mapper"/> </mappers>
在XML中傳遞參數(shù)
因?yàn)橛卸鄠€(gè)參數(shù),所以在XML中參數(shù)的返回值可以不用寫(xiě), 但是在傳參的時(shí)候。
第一種方法:可以在SQL語(yǔ)句中加入#{0} #{param1}就可以傳遞參數(shù)
第二種方法: 使用注解傳遞參數(shù),
第一步 : 在函數(shù)的參數(shù)前添加注解
List<Log> selByAccInAccout(@Param("accin") String accin123,@Param("accout") String accout3454235);
第二步: #{} 里面寫(xiě)@Param(“內(nèi)容”)參數(shù)中
<!-- 當(dāng)多參數(shù)時(shí),不需要寫(xiě) parameterType --> <select id="selByAccInAccout" resultType="log" > select * from log where accin=#{accin} and accout=#{accout} </select>
這就相當(dāng)于是系統(tǒng)底層給我們也注釋中寫(xiě)的字符串為Key 以形參為value 形成一個(gè)key然后傳遞給XML 這就實(shí)現(xiàn)了多個(gè)參數(shù)的傳遞
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot+Mybatis項(xiàng)目使用Redis做Mybatis的二級(jí)緩存的方法
本篇文章主要介紹了SpringBoot+Mybatis項(xiàng)目使用Redis做Mybatis的二級(jí)緩存的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12詳解idea中web.xml默認(rèn)版本問(wèn)題解決
這篇文章主要介紹了詳解idea中web.xml默認(rèn)版本問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12SpringBoot返回前端Long類(lèi)型字段丟失精度問(wèn)題及解決方案
Java服務(wù)端返回Long整型數(shù)據(jù)給前端,JS會(huì)自動(dòng)轉(zhuǎn)換為Number類(lèi)型,本文主要介紹了SpringBoot返回前端Long類(lèi)型字段丟失精度問(wèn)題及解決方案,感興趣的可以了解一下2024-03-03java連接池Druid連接回收DestroyConnectionThread&DestroyTask
這篇文章主要為大家介紹了java連接池Druid連接回收DestroyConnectionThread&DestroyTask示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Java八種基本變量作為類(lèi)的成員變量的默認(rèn)值操作
這篇文章主要介紹了Java八種基本變量作為類(lèi)的成員變量的默認(rèn)值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Spring自動(dòng)裝配Bean實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Spring自動(dòng)裝配Bean實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02java并發(fā)編程專(zhuān)題(九)----(JUC)淺析CyclicBarrier
這篇文章主要介紹了java CyclicBarrier的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07mybatis 根據(jù)id批量刪除的實(shí)現(xiàn)操作
這篇文章主要介紹了mybatis 根據(jù)id批量刪除的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08