在使用MyBatis时,不要进行方法重载

Posted 小智RE0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用MyBatis时,不要进行方法重载相关的知识,希望对你有一定的参考价值。

比如我现在写个Demo1实体类

/**
 * @author by 信计1801 李智青 学号:1809064012
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Demo1 
    private String name;
    private Integer age;

比如说,我现在写个持久层接口Demo1Mapper;
这里虽然对查询方法getSome()进行了方法重载;

/**
 * @author by 信计1801 李智青 学号:1809064012
 */
public interface Demo1Mapper 
    //获取方法1;
    Demo1 getSome();

    //获取方法2;
    Demo1 getSome(@Param("name") String name);
    
    //获取方法3;
    Demo1 getSome(@Param("name") String name,@Param("age") Integer age);

但是,注意若是在写映射文件时,无法进行重载;
由于在具体调用方法时,那么会根据映射文件namespace的对应接口名 + id对应方法名;来定位到这个具体的SQL处理,

那么鉴于这种情况,可以这样试试;将三个方法对应到映射文件中的一个sql中;
即使用动态sql标签


那么实际上;这边持久层的话; 用一个方法就可以啦


以上是关于在使用MyBatis时,不要进行方法重载的主要内容,如果未能解决你的问题,请参考以下文章

第三节:mybatis之参数处理

谈 DevOps 的开发方法—看板驱动开发

mybatis:延迟加载时不要在get/set方法上面添加final关键字(原创)

MyBatis 动态sql?

MyBatis学习总结(16)——Mybatis使用的几个建议

MyBatis学习总结_16_Mybatis使用的几个建议