SELECT SQL_CALC_FOUND_ROWS * FROM test_date limit 2 OFFSET 0;
SELECT FOUND_ROWS();
同时得到分页数据和总条数;
应用到mybatis时,需要这样写:
<resultMap id="data" type="com.example.sql.mapper.DateMy">
<result property="id" column="id"/>
<result column="name" property="name"/>
</resultMap>
<resultMap id="count" type="java.lang.Integer">
<result column="count"/>
</resultMap>
<select id="list2" resultMap="data,count">
SELECT SQL_CALC_FOUND_ROWS id,name FROM test_date limit 2 OFFSET 0;
SELECT FOUND_ROWS() as count;
</select>
resultMap那里可能会报规范错误,不用理会;
Dao层:
List<List<?>> list2();
测试:
@Test
public void contextLoads2() {
List<List<?>> list = testDate.list2();
System.out.println(list.get(0));
System.out.println(list.get(1).get(0));
}
[DateMy{id=1, name='2019-04-01'}, DateMy{id=2, name='2019-04-04'}]
3