一、场景
在@Select注解使用中,自定义sql时,会存在一个或多个查询条件的情况,这样在注解形式sql里,插入参数需要进行判空
二、实例
@Select({"<script>"+
"SELECT DISTINCT "+
"a.monitor_id monitorId," +
"a.monitor_name monitorName," +
"a.target," +
"a.priority,"+
"a.gmt_create gmtCreate " +
"FROM "+
"alert a,"+
"( SELECT monitor_id, max( gmt_create ) gmt_update FROM alert GROUP BY monitor-id ) b " +
"WHERE " +
"a.monitor_id = b.monitor_id "+
"AND a.gmt_create = b.gmt_update " +
"AND DATEDIFF(gmt_create,NOW())=0 "+
"<when test='times!=null'>" +
"AND times = #{times}"+
"</when>"+
"<when test='monitorName!=null'" +
"AND monitor_name like concat('%',#(monitorName},'%')"
"</when>"+
"<when test='priority!=null'" +
"AND priority = #{priority}"+
"</when>"+
"</script>"})
List<IndicateDetail> getIndicatorList(@Param("monitorName")String monitor_name,@Param("times")String times,@Param("priority")String priority);
用script标签包围,然后像xml语法写