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