mybatis异常:Cannot find class: VARCHAR

本文记录了一次在Spring Boot项目中遇到的MyBatis JDBCType配置错误,详细描述了从错误信息出发,逐步排查并最终定位到将JDBCType误写为JavaType的过程。作者分享了这一经历,提醒开发者在使用IDE快捷键时务必确认方法的正确性。

报错信息如下所示:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountSeqService': Injection of autowired dependencies failed; nested exception is     org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.tjgjk.mapper.account.card.AccountSeqMapper   com.tjgjk.service.account.card.impl.AccountSeqServiceImpl.accountSeqMapper; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type   [com.tjgjk.mapper.account.card.AccountSeqMapper] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations:   {@org.springframework.beans.factory.annotation.Autowired(required=true)}

  Related cause: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountSeqMapper' defined in file [E:\tomcat8\apache-tomcat-8.0.39-windows-x86\apache- tomcat-  8.0.39\wtpwebapps\tjgjk\WEB-INF\classes\com\tjgjk\mapper\account\card\AccountSeqMapper.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException:     org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could   not resolve   type alias 'VARCHAR'. Cause: java.lang.ClassNotFoundException: Cannot find class: VARCHAR

  at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.

  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.

  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.

  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.

  at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.

  at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.

  at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.

  at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.

  at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.

  at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.

  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.

  at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.

  at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.

  at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.

  at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.

  at org.apache.catalina.core.StandardContext.startInternal(StandardContext.

  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.

  at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.

  at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.

  当时就一顿好找,因为错误中提示是在 解析XML文件时出错,所以在XML里来来回回查找三、四遍,愣是没找到具体错误原因,

    然后是在受不了了就去Google了下,没想到具体原因实在是让人难以启齿啊,见图

  IBatis异常: <wbr>Cannot <wbr>find <wbr>class: <wbr>VARCHAR

 

  JavaType对应的是类里的数据类型,jdbcType对应数据库里的类型

  jdbcType被我写成了javaType,想哭,也在此提醒下各位小伙伴,使用快捷键时一定要看好是不是所对应的方法,

    以此,给自己一个警告。

MyBatis中出现`java.lang.ClassNotFoundException: Cannot find class: MesFactoryModelMapper`通常是由于类路径配置问题、依赖缺失或编译问题导致的,以下是一些可能的解决办法: #### 检查类路径和配置 确保`MesFactoryModelMapper`类所在的包路径在MyBatis的配置文件中被正确配置。如果是使用`mybatis-config.xml`,需要检查`<mappers>`标签是否正确配置了`MesFactoryModelMapper`类的路径。示例如下: ```xml <mappers> <mapper class="com.example.mapper.MesFactoryModelMapper"/> </mappers> ``` 如果是使用Spring Boot与MyBatis整合,需要确保Mapper接口所在的包被`@MapperScan`注解扫描到。示例如下: ```java import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.example.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 检查依赖 确保项目中已经正确添加了MyBatis相关依赖。如果使用Maven,需要在`pom.xml`中添加MyBatisMyBatis-Spring的依赖。示例如下: ```xml <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <dependency> <groupId>org.mybatis.spring</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.6</version> </dependency> </dependencies> ``` #### 检查编译问题 确保项目已经正确编译,`MesFactoryModelMapper`类已经被编译成`.class`文件并存在于类路径中。可以尝试重新编译项目,在Maven项目中可以使用以下命令: ```bash mvn clean compile ``` #### 检查IDE配置 如果使用IDE开发,确保IDE的类路径配置正确,IDE能够找到`MesFactoryModelMapper`类。可以尝试重新导入项目或刷新Maven依赖。
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茂林修竹丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值