【MyBatis】ClassNotFoundException: Cannot find class: xxx`

文章讲述了在使用MyBatis时遇到关于类型别名解析错误的问题,原因在于XML文件中的类名引用未正确处理。解决方案包括检查XML文件中是否使用了正确的全限定名,以及配置mybatis的扫描路径。
摘要由CSDN通过智能技术生成

问题描述

在使用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

原因分析:

在报错信息上有个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

具体的映射思路如下:

在这里插入图片描述

举一反三

如果有这种报错信息呢?

# 问题描述借用文章: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

没错:就是在

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

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

旧: ' com.facade.boss.NewStudentDto'.
新: 'com.facade.boss.NewStudentDto'.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值