您好,登錄后才能下訂單哦!
這篇文章主要講解了“Mybatis中Mapper使用package方式配置報錯如何解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Mybatis中Mapper使用package方式配置報錯如何解決”吧!
Mybatis 中Mapper使用package方式配置報錯
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
UserDaoTest中調用了UserDao的insert方法。
package com.mybatis.dao; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; import com.mybatis.pojo.User; @Mapper public interface UserDao { void insert( User user); int insertSelective(@Param("user") User user); int insertList(@Param("users") List<User> users); int update(@Param("user") User user); User findbyId(@Param("id")Integer id); }
已經按照正常的package的配置方式,將接口與xml文件放在同一個目錄下,其他配置也沒問題,就是報找不到UserDao中的方法。
結果去target中看了一眼發現,xml文件沒加載。。。。。
原來是IDEA maven項目默認不會把src下除java文件外的文件打包到classes文件夾下,需要在maven中增加配置如下
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <!--默認是true--> <!--<filtering>true</filtering>--> </resource> </resources> </build>
這樣xml文件就可以加載了,動態代理為UserDao接口生成實現類,而實現類的具體實現細節就是在xml中,通過package掃描的方式找到xml,就可以正確的生成UserDao的代理類了。
而xml無法加載,就會造成動態代理生成的代理類是無效的(這個代理類對象是可以生成的),當調用方法就會出現開頭的錯誤。
感謝各位的閱讀,以上就是“Mybatis中Mapper使用package方式配置報錯如何解決”的內容了,經過本文的學習后,相信大家對Mybatis中Mapper使用package方式配置報錯如何解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。