Mybatis中一些常见问题

本文详细介绍了Mybatis中的映射器配置(包括mapper-locations和type-aliases-package),如何设置别名简化SQL,以及Mapper接口扫描的两种方法。重点讨论了Mapper接口和XML文件的命名空间匹配以及包结构要求。
摘要由CSDN通过智能技术生成

前言

  • 我们在使用Mybatis是经常会遇到Mapper找不到,或者实体类找不到的问题,一个小细节可能就需要花很多时间去解决,就是因为我们对mybatis的配置不熟悉,对这些配置的作用不熟悉,这篇文章我就总结了一些mybatis中常见的一些问题解决方法。

Mybatis中常见的配置及其作用

  • 映射器配置(扫描mapper.xml文件)
    mapper-locations是一个字符串数组,可以设置多个

//我的mapper.xml文件是mapper/produce/ProduceMapper.xml,这里的*是通配符
mybatis: //注意缩进
mapper-locations: classpath:mapper/**/*Mapper.xml

  • 设置别名(可以在mapper.xml中简化sql返回值类型)
    我的实体类是在com.lq.pojo.domain下,那么xml中的参数类型就只用写实体类名称,而不用写全限定名,如果不加这个配置,我需要写parameterType = "com.lq.pojo.domain.User",但是加了这个配置,我就只需要写parameterType = "User",不仅仅是parameterType 中使用,只要类型这个包下的都可以【注意,type-aliases-package不支持配置多个包,要想在不同包下使用别名,只用使用通配符满足】

//扫描实体类所在的包
mybatis: //注意缩进
type-aliases-package: com.lq.**.domain

  • 其实mybatis中常用的配置就这两个,但是我们常常会碰到mapper接口找不到的错误,其实是mapper扫描的问题。

Mapper扫描问题

  • 使用@MapperScan注解

    在主启动类上加上@MapperScan(“mapper接口所在的包路径”)【可以使用通配符】

  • 使用@Mapper注解
    在mapper接口上加上@Mapper注解

Mapper接口和Mapper.xml映射

  • mapper.xml中的命名空间进行匹配
    类的完全限定名就是包名+类名
 <mapper namespace="mapper接口的完全限定名">
 <mapper>
  • mapper接口和xml文件一般要在同一个包下,当然不在同一个接口下也可以,但是要确保的是Mapper接口能被扫描到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值