当前位置:   article > 正文

【MyBatis】ClassNotFoundException: Cannot find class: xxx`_mybatis的xml文件用类名报classnotfind

mybatis的xml文件用类名报classnotfind

问题描述

在使用MyBatis的时候,报错信息如下:

Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'PlantModelParentsRuleInfo'.  Cause: java.lang.ClassNotFoundException: Cannot find class: PlantModelParentsRuleInfo
	at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:120)
	at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:149)
	at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:116)
	... 65 common frames omitted
Caused by: java.lang.ClassNotFoundException: Cannot find class: PlantModelParentsRuleInfo
	at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:200)
	at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:89)
	at org.apache.ibatis.io.Resources.classForName(Resources.java:261)
	at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:116)
	... 67 common frames omitt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

原因分析:

在报错信息上有个ibatisxml文件上面的报错
结合报错信息上 .ClassNotFoundException: Cannot find class: PlantModelParentsRuleInfoPlantModelParentsRuleInfo 找不到
两者结合,我们就可以大致的推断出 是xml文件上的 PlantModelParentsRuleInfo 扫描不到


解决方案:

方法一

首先,选择到需要的xml文件
Ctrl + F 输入 PlantModelParentsRuleInfo,进行搜索:
发现,在xml文件中:如下图所示:只是写明了类名
在这里插入图片描述

那如果通过类名找不到的话,那就写上全限定名。

在这里插入图片描述

方法二

也可以动用mybatis的配置信息

# MyBatis配置
mybatis:
  # 搜索指定包别名
  typeAliasesPackage: com.ruoyi.**.domain
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # 加载全局的配置文件
  configLocation: classpath:mybatis/mybatis-config.xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

具体的映射思路如下:

在这里插入图片描述

举一反三

如果有这种报错信息呢?

# 问题描述借用文章:https://blog.csdn.net/Ma_Liu_Min/article/details/107514654
Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias ' com.***.facade.boss.***.NewStudentDto'.  Cause: java.lang.ClassNotFoundException: Cannot find class:  com.***.facade.boss.***.NewStudentDto
	at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:117)
	at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:130)
	at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:101)
	... 101 more
Caused by: java.lang.ClassNotFoundException: Cannot find class:  com.***.facade.boss.***.NewStudentDto
	at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:190)
	at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:89)
	at org.apache.ibatis.io.Resources.classForName(Resources.java:256)
	at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:113)
	... 103 more
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

没错:就是在

xml 文件上 找不到 ' com.***.facade.boss.***.NewStudentDto'.
  • 1

就是在写全限定名的时候,多加了一个空格。解决方法:去掉空格即可。

旧: ' com.facade.boss.NewStudentDto'.
新: 'com.facade.boss.NewStudentDto'.
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/618476
推荐阅读
相关标签
  

闽ICP备14008679号