Mybatis中resultMap是否可以共享(每个mapper.xml中都要重复定义相同的resultMap吗)

    用Mybatis有时候需要传入实体类参数并且返回实体类。

    传入实体类参数时最好不要写parameterType=“实体类路径”,更不要写mybatis不用的parameterMap,会报错的。不写的话只要mapper接口中传入此类,mybatis会自动处理传参,可以直接使用里面的属性值。

   当返回值为实体类时,我们需要在.xml文件中声明resultMap,返回resultMap与声明的resultMap id相同即可。

     but!!!当我们有时需要多个.xml文件中都返回相同的实体类时,在每个xml文件都声明相同的resultMap实体类很明显是不明智的,我们需要有一个公用的resultMap可以实现数据共享。

    解决方法如下:

    可以在xml文件中新建一个commonMapper.xml(名字随意),把所有的resultMap都写在这个xml中。此xml不需要实现mapper接口,也就是说不用建对应的commonMapper.java接口。只有一个commonMapper.xml就够了。

    注意记录这个公有xml的命名空间namespace和resultMap的id,(命名空间这里可以随便起一个名字,不需要跟对应的mapper接口名字一样,甚至都不需要那个mapper文件)我们在其他需要引用实体类的地方只需要用 “命名空间.id“就可以调用啦。

    如下图在.xml中引用commonMapper中的DictMap,直接写“commonMapper的命名空间.DictMap”即可。

亲测可用,大家可以试试

ps:在spring mvc中可以用,但在springboot 2.2.2中我发现共享不能用了,一直提示找不到,暂时没发现解决办法

    

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

豆趣编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值