網站首頁 編程語言 正文
mybatis(mybatis-plus)報invalid bound statement (not found)或者找不到xml文件(各種情況)
作者:小徐敲java 更新時間: 2024-04-05 編程語言情況1:xml文件不在resource目錄下的必須使用絕對路徑
mybatis-plus:
# Mapper.xml 文件位置 Maven 多模塊項目的掃描路徑需以 classpath*: 開頭
# 實現接口綁定
mapper-locations: classpath*:com/example/clickhouse/mapper/**/xml/*Mapper.xml
情況2:查看yml文件是否添加mybatis配置(xml文件在resource目錄下)
mybatis-plus:
# Mapper.xml 文件位置 Maven 多模塊項目的掃描路徑需以 classpath*: 開頭
# 實現接口綁定
mapper-locations: classpath*:mybatis/xml/*Mapper.xml
情況3:區分使用的的版本是mybatis還是mybstis-plus,yml配置也不同(xml文件在resource目錄下)
#mybatis:
mybatis-plus:
# Mapper.xml 文件位置 Maven 多模塊項目的掃描路徑需以 classpath*: 開頭
# 實現接口綁定
mapper-locations: classpath*:mybatis/xml/*Mapper.xml
情況4:調用mybatis(mybatis-plus)的IService的查詢方法看是否也報這個錯誤,如果也報這個錯誤就是SqlSessionFactory手動注入了,如下
@Bean("sqlSessionFactory")
public SqlSessionFactory sqlSessionFactoryBean(DynamicDataSource dynamicDataSource) throws Exception {
//MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dynamicDataSource);
//sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:com/example/poi/mapper/**/xml/*Mapper.xml"));
return sessionFactory.getObject();
}
如上的方法永遠不會調用到mybatis的bean,需要修改成如下才行,同時在yml配置的mybatis都失效了,需要在SqlSessionFactory 設置,如設置讀取*Mapper.xml的路徑
@Bean("sqlSessionFactory")
public SqlSessionFactory sqlSessionFactoryBean(DynamicDataSource dynamicDataSource) throws Exception {
MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
sessionFactory.setDataSource(dynamicDataSource);
/// 創建Configuration對象
MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
mybatisConfiguration.setLogImpl(org.apache.ibatis.logging.stdout.StdOutImpl.class); // 設置日志輸出到控制臺
sessionFactory.setConfiguration(mybatisConfiguration);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:com/example/poi/mapper/**/xml/*Mapper.xml"));
return sessionFactory.getObject();
}
情況5:使用mybatis-plus必須導入以下依賴(不要使用spring的mybatis,不然和spring本身數據庫管理沖突,還有就是注意使用springboot版本和mybatis版本問題,建議都是使用mybatis-plus,不然使用mybatis可能出現sqlFactory找不到等問題)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
情況6:打開項目的target目錄,觀察里面是否有對應的××Mapper.xml文件,若沒有,則在pom.xml文件中加入如下配置
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
原文鏈接:https://blog.csdn.net/qq_19891197/article/details/134550106
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2023-07-22 linux自動化運維之linux腳本自動操作redis數據
- 2022-02-25 Oracle工具PL/SQL的基本語法_oracle
- 2022-02-17 Flutter InAppWebView在showModalBottomSheet中無法滾動
- 2022-04-28 Pytorch中torch.flatten()和torch.nn.Flatten()實例詳解_pyt
- 2023-03-03 詳解C++?STL模擬實現forward_list_C 語言
- 2022-08-30 如何解決React?useEffect鉤子帶來的無限循環問題_React
- 2022-06-02 Apache?Hudi基于華米科技應用湖倉一體化改造_服務器其它
- 2023-06-19 圖文詳解Go中的channel_Golang
- 欄目分類
-
- 最近更新
-
- 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同步修改后的遠程分支