介绍
今天就跟大家聊聊有关Java如何实现分页功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的CRUD接口直接调用,方便快捷,不用再写复杂的sql,带吗简单易懂,话不多说上方法
<强> 1,跑龙套。java工具类中的方法强>
/* * 2 *获取排序 * * @param方向——排序方向 * @param列——用于排序的字段 */公共静态排序getSort(字符串方向,字符串列){ 这种类型=零; 如果列==null | |列==啊?返回null; 如果(direction.equals (“asc") | | direction.equals (“asc")) { 类型=Sort.by (Sort.Direction.ASC、列); 其他}{ 类型=Sort.by (Sort.Direction.DESC、列); } 返回排序; } /** *获取分页 * @param pageNumber当前页 * @param页大小页面大小 * @param排序排序;分类为空则不排序只分页 * @return分页对象 */公共静态可分页getPageable (int pageNumber, int页大小排序){ 如果(排序!=null) { 返回PageRequest.of (pageNumber页大小,排序); } 返回PageRequest.of (pageNumber页大小); } /** *判断字符串是否为空 * @param str * @return */私有静态布尔isEmpty (String str) { 如果(str.equals (null) | | str.equals(“;”))返回true; 返回错误; }
<强> 2,实现类强>
这里查询相关参数是前端传的,所以用默认值了,查询条件可以是多条件动态,排序也可以是动态的,只要传排序字段和排序方向对号入座即可。
@Override 公共PagefindAll () {//创建测试对象 用户用户=新用户(); user.setName (“1“); 类型=Utils.getSort (“asc",“name"); 可分页可分页=Utils.getPageable(0、5、排序);//调用组装查询条件方法 Specification 规范=getSpecification(用户); 可分页返回userRepository.findAll(规范); } /** *组装查询条件 * @param用户-查询相关对象 * @return返回组装过的多查询条件 */私人Specification getSpecification(用户用户){ Specification 规范=new Specification () { @Override 公共谓词toPredicate (Root 根,CriteriaQuery<及# 63;比;criteriaQuery querybuilder querybuilder) { List 谓词=new ArrayList<在();//判断条件不为空 如果(! Utils.isEmpty (user.getName ())) { predicates.add (criteriaBuilder.like (root.get (“name") user.getName ())); } 返回criteriaQuery.where(谓词。toArray(新谓词[predicates.size ()))) .getRestriction (); } }; 返回规范; }
<强> 3。库类中这么写强>
@引用>
的公共接口UserRepository延伸JpaRepository<用户、Integer> JpaSpecificationExecutor{} 看完上述内容,你们对Java如何实现分页功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
Java如何实现分页功能