springboot集成mybatis问题分享

springboot集成mybatis

当项目springboot框架集成mybatis的时候,需要注意以下两点:
1.xml文件编译不到项目中去;
2.mapper接口没有被扫描到;
3.xml文件被编译到项目中,但是没有和mapper形成对应关联关系;
4.xml文件被编译到项目中,但是运行报错提示没有对应的mapper方法;

博主整理经验分享如下:
第一点问题:一般存在于xml定义在项目src/java 目录下,如果xml定义在src/resources目录下不会存在此问题(并且好像是IDEA存在此问题),解决方式如下:对应xml的模块或者项目pom.xml下,定义资源文件让xml编译到项目中
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>
                    **/*.xml
                </include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>
然后再mvn -U clean 更新项目,一般可解决此问题

第二点问题:如果是springboot项目,有两种方式解决:
a)在每一个mapper接口类上标注@Mapper的注解(mapper多时候繁琐)
b)在springboot启动类上增加@mapperScan({"com.xxx.xxx.**.*Mapper"}),可以逗号多个包,这里可以用通配符也可以直接写具体的包名

第三点问题:一般存在于自定义的mapper接口和xml文件,注意xml中的<mapper namespace="xxxxx"/>注意xxx是否对应了mapper接口类的全路径名。

第四点问题:当时折腾很久,特地记录分享。以便后续有朋友需要:这种问题一般在运行的时候报错提示:com.ibatis.xxxxmapper.xxx() not found....这个问题的解决方式:
分析:注意前面的问题解决了xml的编译和mapper的映射关系,但是这个时候mybatis还有进行相应的xml文件管理或者mapper方法的映射吧(我是这样理解)
解决:在yml配置文件中,配置mapper-locations:
mybatis-plus:(我项目使用的是mybatis-plus,有兴趣可以了解以下)
  type-aliases-package: com.zhiche.opbaas.domain.mapper
  mapper-locations: classpath*:com/zhiche/opbaas/domain/**/*Mapper.xml
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值