controller:
Page pageData=studentService.findAll(page,limit);
request.setAttribute("stu", pageData);
LayData layData=new LayData();
//保持与layui中的数据表格所需求的json格式保持一致
layData.setCode(0);
layData.setCount(pageData.getTotalElements());——这是总条目
layData.setData(pageData.getContent());——这是分页内容
return layData;
StudentServcieImpl:
private StudentDao studentDao;
public Page findAll(int page, int pageSize) {
PageRequest pageable= PageRequest.of(page,pageSize);
return studentDao.findAll(pageable);
}
StudentDao:
public interface StudentDao extends JpaRepository {
@Query(name = "loginbyId", nativeQuery = true, value =
"select * from student where id=:id and password=:password")
Student loginbyId(@Param("id") Integer id, @Param("password") String password);
}
看了一下jpa源码(org.springframework.data.jpa.repository.support.SimpleJpaRepository类中),也没看懂。我写了个分页查询的sql:
SELECT id,name, address FROM ( SELECT TOP 5 id,name, address FROM ( SELECT TOP 10 id,name, address FROM table ORDER BY id DESC ) t1 ORDER BY id ) t2 ORDER BY id DESC
(我有26列要显示,表总共有100多列,mssql 的查询语句似乎只能这样写吧?)
我的这个sql只能查到第一页的数据,查不到总条数,难道还要另外写一个查询语句查总条数吗?jpa里一次调用拿到总条数和当前页的记录,是怎么做到的?