mybatis在xml中直接使用枚举

业务背景:
在我们业务场景中有时就会出现在mybatis的xml文件中使用枚举值,是因为有些值不想写死想集中统一管理。

枚举类:

package com.test.constant;
 
public enum AnimalEnum {
 
    DOG("dog"),
    CAT("cat"),
 
    private String type;
 
    AnimalEnum(String type) {
        this.type= type;
    }
 
    public String type() {
        return this.type;
    }
     public static boolean isDog(String type) {
        return DOG.type().equals(type);
    }
}

mapper.xml文件中使用:

在mapper文件中,想判断一个参数的值是否跟 AnimalEnum.DOG的值是否一致

<if test="@com.test.constant.AnimalEnum@isDog(type)" >
  AND  p.animal_type=#{type}
</if>

其中:

  1. @后是枚举类的文件路径,第二个@后是枚举方法(其中是传递参数)type是传过来的参数
  2. 如果想直接获取枚举的可以这样:@com.test.constant.AnimalEnum@CAT.type

以下是工作中用到的:

 select
    distinct d.dept_id as deptId,
    d.dept_name as deptName
from 
    sys_dept d
where 
    d.dept_type = '${@com.bzzn.stability.constant.DeptRoleType@JDB.getCode()}'
order by d.dept_id asc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值