这是我一个@Select里面的分页查询,记住复杂语句用<script>
和</script>
包裹起来,但是在<script>
和</script>
内不能用>、<=、<、<=等判断语句要用gt;和lt;等转义字符,具体字符自行百度查看。(注意结尾不要用分号;否则报错,而且最好用&{},用#{}传参数也会有报错问题出现。)
@Select("<script> select to_char(data_time,'yyyy-mm-dd hh24:mi:ss') " +
"as TIME ,mn as MN,factor_code as CODE,avg_value as VALUE,flag " +
" from (" +
"select t.*,ROWNUM as rn from HOUR_DATA t where (t.mn in"
+ "<foreach collection='mnList' index='index' item='item' open='(' separator=',' close=')'> "
+ "'${item}'"
+ "</foreach> )"
+ "and (t.factor_code in"
+ "<foreach collection='projectCodes' index='index' item='item' open='(' separator=',' close=')'> "
+ "'${item}'"
+ "</foreach>)"
+ "and (t.data_time between (to_date('${startTime}','yyyy-mm-dd hh24:mi:ss'))" +
"and (to_date('${endTime}','yyyy-mm-dd hh24:mi:ss'))) " +
") tt where tt.rn>${pageNo} and tt.rn<${pageSize}</script>")
public List<Map<String, Object>> audioSingReportByPage2(@Param("startTime") String startTime, @Param("endTime") String endTime,
@Param("projectCodes") List<String> projectCodes, @Param("mnList") List<String> mnList,
@Param("pageNo") Integer pageNo,@Param("pageSize") Integer pageSize);