天天看點

【Mybatis】如何在Mybatis XML檔案中使用枚舉變量

背景說明

我們程式中經常将一些狀态值歸類成枚舉類,并不想在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檔案中,想判斷一個參數的值是否跟 AnimalEnum.DOG的值是否一緻

<if test="[email protected]@isDog(type)" >
  AND  p.animal_type=#{type}
</if>
           

場景二:在mapper檔案中,根據不同的type,查詢不同的字段

SELECT PK_ID,  
	(CASE WHEN '${type}' = '${@c[email protected]()}' 
		THEN ANIMAL_EN_NAME
		ELSE ANIMAL_CN_NAME
	END
FROM TEST_TABLE