背景說明
我們程式中經常将一些狀态值歸類成枚舉類,并不想在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