文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

浅谈Springboot下引入mybatis遇到的坑点

2024-04-02 19:55

关注

一、 springBoot + Mybatis

配置完成后,访问数据库遇到的问题

这里写图片描述

首先出现这个问题,肯定是xml文件与mapper接口没有匹配上,甚至是xml文件根本没有被扫描到。

于是会从配置上进行检查:

1、 xml中的namespace命名是否与mapper接口路径一致,需保证一致。

2、 application.properties或者application.yml文件中配置mybatis的属性对否,如下:

这里写图片描述

第一行 typeAliasesPackage是实体类的包路径;

第二行mapperLocations:是Mapper的xml文件存放的位置,当xml文件跟对应的Mapper接口处于同一位置的时候可以不用指定

该属性的值。

3、 启动类上加注解,如下:

这里写图片描述

推荐用这种方式扫描Mapper接口,另一种方式是在每一个mapper接口类上加注解

这里写图片描述

注意,上述两种方式,必须有一种实现,不然无法启动项目,会报mapper接口未注入,如下:

这里写图片描述

综上,只要上面几种情况都配置正确,一般就可以正常启动,并访问数据库。

二、 springBoot + MybatisPlus

pom中需要修改包

这里写图片描述

我用同样的原理,准备在springBoot中引入mybatisPlus,但是配置都检查了,依旧报类似的错误:

这里写图片描述

于是根据报错的信息,究其源码:

1、 首先由于mybatis通过mapper接口来invoke具体的方法实现,其查询的key是接口包名加方法名,如果找不到该key,就会报错,具体代码如下:

这里写图片描述

只有在configuration中找到了匹配的key,才会返回key对应的MappedStatement; 同样调用selectById,可看到一下结果,能够找到。很明显而由于上面的selectById1方法是自定义实现的,其xml未被扫描到,还是配置的问题。

这里写图片描述

然后,再看源码,为何configuration中找不到自定义的mapper方法,配置哪里有问题:

这里写图片描述 这里写图片描述

MybatisPlusAutoConfiguration是在启动时,自动会读取配置信息的,可以看到其中MybatisPlusProperties类型定义了前缀mybatis-plus,即只有前缀为mybatis-plus的配置信息才会被加载,而再看配置文件,如下,恍然大悟,mybatis的配置前缀写错了,修改成mybatis-plus,成功了!!!

这里写图片描述

后来发现,原来这跟开头pom文件中导入的包版本有关系,

总结如下:

若使用的是mybatis,则要导入的包是下面这个,并且配置文件中mybatis的配置前缀是“mybatis”。

这里写图片描述

而若使用的是mybatis-plus,则需要导入的包是下图,并且配置中mybatis的配置前缀是“mybatis-plus”。

这里写图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯