注意点:
1.Wrapper记得condition,比较前记得时间格式要对
SQL
1. 查询id在某个idList里的记录
<if test="queryDto.ids != null">
and id in
<foreach collection="queryDto.ids" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
2. 查询在某时间范围内
<if test="queryDto.startTime!=null and queryDto.endTime!=null">
and time between #{queryDto.startTime} and #{queryDto.endTime}
</if>
注意点:数据类型是LocalDate或者LocalDateTime,就不能用空字符除按判空了,要用null
3. 查询某天的数据(例如当天)
queryDto.setDate(LocalDate.now())
DATE(column_name) 转换格式
<if test="queryDto.date!= null">
and DATE( time)= #{queryDto.date}
</if>
4. 结果多维度排序
ordeyBy column_1, column_2,...
如果用Wrapper,就直接多个.orderBy(column_1).orderBy(column_2)
比如column_1代表天数,column_2代表等级,
那么这条sql的效果是,先根据天数排了,再根据等级排。结果例如:
[{day:1, level:1},{day:1, level:2},{day:1, level:3},{day:2, level:1},{day:1, level:2}]