sqlserver实现分页的几种方式
2017-04-28 14:54
387 查看
sqlserver实现分页的几种方式
第一种:使用org.springframework.data.domain.Page来进行分页
第一种:使用org.springframework.data.domain.Page来进行分页
packagecom.cellstrain.icell.repository.repositoryImpl; importcom.cellstrain.icell.entity.V_Paper; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.data.domain.Page; importorg.springframework.data.domain.PageImpl; importorg.springframework.data.domain.Pageable; importorg.springframework.jdbc.core.BeanPropertyRowMapper; importorg.springframework.jdbc.core.JdbcTemplate; importorg.springframework.stereotype.Repository; importorg.springframework.util.StringUtils; importjavax.persistence.EntityManager; importjavax.persistence.PersistenceContext; importjavax.persistence.Query; importjava.util.List; importjava.util.Map; @Repository(value="vPaperRepository") publicclassVPaperRepositoryImpl{ @Autowired privateJdbcTemplatejdbcTemplate; @PersistenceContext privateEntityManagerentityManager; /** *后台分页查询 *@paramcondition *@parampageable *@return */ publicPagefindByCondition(Stringcondition,Pageablepageable){ StringBufferhql=newStringBuffer("fromV_Paperpwhere"); if(!StringUtils.isEmpty(condition)){ hql.append("p.titlelike'%"+condition+"%'orp.entryNamelike'%"+condition+"%'orp.pNamelike'%"+condition+"%'orp.authlike'%"+condition+"%'orderbyp.paperIddesc"); }else{ hql.append("1=1orderbyp.paperIddesc"); } Queryquery=entityManager.createQuery(hql.toString()); //得到符合记录的总数 intcount=query.getResultList().size(); Longtotal=(long)count; //分页查询 query.setFirstResult(pageable.getOffset()); query.setMaxResults(pageable.getPageSize()); List<V_Paper>proteinRanksList=query.getResultList(); //封装Page Page<V_Paper>page=newPageImpl<V_Paper>(proteinRanksList,pageable,total); } } 第二种:使用top关键字来进行分页
packagecom.cellstrain.icell.repository.repositoryImpl; importcom.cellstrain.icell.entity.V_Paper; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.data.domain.Page; importorg.springframework.data.domain.PageImpl; importorg.springframework.data.domain.Pageable; importorg.springframework.jdbc.core.BeanPropertyRowMapper; importorg.springframework.jdbc.core.JdbcTemplate; importorg.springframework.stereotype.Repository; importorg.springframework.util.StringUtils; importjavax.persistence.EntityManager; importjavax.persistence.PersistenceContext; importjavax.persistence.Query; importjava.util.List; importjava.util.Map; @Repository(value="vPaperRepository") publicclassVPaperRepositoryImpl{ @Autowired privateJdbcTemplatejdbcTemplate; @PersistenceContext privateEntityManagerentityManager; /** *后台分页查询 *@paramcondition *@parampageable *@return */ publicPagefindByCondition(Stringcondition,Pageablepageable){ if(StringUtils.isEmpty(condition)){ condition=""; } intpageSize=pageable.getPageSize(); intpageNow=pageable.getPageNumber(); Stringsql="selecttop"+pageSize+"vp.paperId,vp.title,vp.entryName,vp.source,vp.recordDate,vp.url,vp.auth,dbo.JoinStr(vp.paperId)aspNames"+ "fromV_Papervpwherevp.paperIdnotin(selecttop"+pageSize*pageNow+"paperIdfromV_PaperorderbypaperIddesc)and(titlelike'%"+condition+"%'orcontentslike'%"+condition+"%')"+ "groupbyvp.paperId,vp.title,vp.entryName,vp.source,vp.recordDate,vp.url,vp.authorderbyvp.paperIddesc"; ListpaperList=null; Longtotal=jdbcTemplate.queryForObject("selectcount(*)fromV_Paper",Long.class); try{ paperList=jdbcTemplate.queryForList(sql); }catch(Exceptione){ e.printStackTrace(); } Pagepage=newPageImpl(paperList,pageable,total); returnpage; } }
相关文章推荐
- 常用的几种 SQLServer 分页查询方式实现
- [转]四种方式实现SQLServer 分页查询
- 四种方式实现SQLServer 分页查询
- 四种方式实现SQLServer 分页查询
- mysql实现分页的几种方式
- 四种方式实现SQLServer 分页查询
- [置顶] SSH hibernate 分页的几种实现方式
- 四种方式实现SQLServer 分页查询
- 四种方式实现SQLServer 分页查询
- 几种常见的分页查询实现方式
- 四种方式实现SQLServer 分页查询
- 数据查询分页的几种实现方式
- 四种方式实现SQLServer 分页查询
- 四种方式实现SQLServer 分页查询
- 四种方式实现SQLServer 分页查询
- SqlServer 的几种分页方式
- 四种方式实现SQLServer 分页查询
- 实现等待窗体的几种方式
- js实现页面跳转的几种方式
- js实现页面跳转的几种方式