欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis接口綁定失效的解決

 更新時間:2021年11月26日 10:39:26   作者:張意的博客  
這篇文章主要介紹了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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論