这是我一个@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);