枚举
mapper文件 ‘${@全路径名@枚举值.get属性()}’,则会解析出枚举值的属性常量值,放入sql语句中。
这里单引号’‘是因为${}占位符只是把值给填充进去,要表示字符串的话,加上单引号,不是字符串则不用加
常量
‘${@全路径名@常量名}’,会解析出常量值,放入sql语句中。
其实,方法、属性等也可以解析出来,就如同:类.静态属性、类.静态方法()。
注:内部类用$
例子
常量类:
package com.gbth.common.globalVar;
public class CommonConstant {
/**
* 常量1
*/
public static final Integer WORK_REMIND_LIST_TYPE_NOTICE = 10;
/**
* 常量2
*/
public static final Integer WORK_REMIND_LIST_TYPE_TALK = 20;
}
mapper文件sql使用:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cctv.modules.statistics.dao.AnalyDao">
<select id="querySituationAnalyPage" resultType="java.util.HashMap" >
SELECT orgid,orgname,policenumber,count(t.user_id) AS talkpolice,
(CASE WHEN count(t.user_id)=0 THEN 0 ELSE ROUND((count(t.user_id)/policenumber), 3)*100 ||'%' END) AS finrate
FROM (
SELECT so.id AS orgid,so.org_name AS orgname,
count(su.id) AS policenumber
FROM tb_dept so LEFT JOIN sys_user su ON so.id =su.org_id
GROUP BY so.id,so.org_name
) yy LEFT JOIN (SELECT * FROM situationAnaly ta left join th_situatiy_user u ON ta.id=u.id
WHERE 1=1 and ta.status in(${@com.gbth.common.globalVar.CommonConstant@WORK_REMIND_LIST_TYPE_NOTICE})) t
ON yy.orgid=t.org_id
GROUP BY orgid,orgname,policenumber
</select>
</mapper>
其中 ${@com.gbth.common.globalVar.CommonConstant@WORK_REMIND_LIST_TYPE_NOTICE} 为引用常量。