網站首頁 編程語言 正文
項目場景:
在學習mybatis的代理開發的時候出現了此問題
問題描述
今天在學習mybatis的時候出現了錯誤:
Exception in thread "main" org.apache.ibatis.binding.BindingException: Type interface com.wxy.dao.UserMapper is not known to the MapperRegistry.
at org.apache.ibatis.binding.MapperRegistry.getMapper(MapperRegistry.java:47)
at org.apache.ibatis.session.Configuration.getMapper(Configuration.java:745)
at org.apache.ibatis.session.defaults.DefaultSqlSession.getMapper(DefaultSqlSession.java:292)
at com.wxy.service.ServiceDemo.main(ServiceDemo.java:31)
原因分析:
1. 我們得知道這句話的意思是你的Mapper接口,被Spring注入后,卻無法正常的使用mapper.xml的sql;
2. 這里的Spring注入后的意思是,你的接口已經成功的被掃描到,但是當Spring嘗試注入一個代理(MyBatista實現)的實現類后,卻無法正常使用。這里的可能發生的情況有如下幾種;
①接口已經被掃描到,但是代理對象沒有找到,即使嘗試注入,也是注入一個錯誤的對象(可能就是null)
②接口已經被掃描到,代理對象找到了,也注入到接口上了,但是調用某個具體方法時,卻無法使用(可能別的方法是正常的)
解決方案:
如何解決?
1. 檢查你的映射文件中的namespace是不是和接口文件的路徑一致
比如你的接口的全限定名為com.dao,類名為UserDao,那么在你的映射文件中的namespace的參數應該為com.dao.UserDao
【注意:直接復制的路徑是com/dao/UserDao.java? 這樣是不可以的,只可以使用.進行連接】
2. 檢查你的映射文件中的id是不是和接口中的方法名一致?
比如你的方法名為findAll(),那么你的映射文件中的id就需要是findAll
3. 檢查你的接口的輸出是不是和你的resultType一致?
比如你的resultType是user類,那么你的接口的輸出【假設你的接口里面的方法為List<xxx> findAll() ;】即你這里的xxx需要是User
注意哈,我這里使用User是因為我已經在核心配置文件中進行重命名了的,所以你沒有進行重命名的話,你的resultType就需要是包名+User,然后你的輸出里面的xxx仍然是User就可以,不會有影響的哈
給個截圖吧
①沒有進行核心配置文件自定義別名
②自定義別名了
?
?????????4. 檢查你的接口的輸入和你的paramType是不是一致?
【假設你的接口里面的方法為List<User> findAll(xxx) ;】,映射文件為paramType="int",那么你這里的xxx需要是int i【這個參數隨意,只要參數類型是int就行】
希望對你有幫助!
祝你早日找到工作!一起加油!
原文鏈接:https://blog.csdn.net/young_man2/article/details/125716766
相關推薦
- 2023-01-01 十個驚艷的Pythonic單行代碼_python
- 2022-09-16 Android12四大組件之Activity生命周期變化詳解_Android
- 2022-04-19 提高css性能的優化方法有哪些
- 2022-12-22 React類組件和函數組件對比-Hooks的簡介_React
- 2022-06-30 PyTorch詳解經典網絡種含并行連結的網絡GoogLeNet實現流程_python
- 2022-08-16 C#獲取Description特性的擴展類詳解_C#教程
- 2022-10-13 Python?數據分析教程探索性數據分析_python
- 2022-04-17 create-react-app新版本快速搭建一個簡易的路由頁面
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支