时间:2021-05-20
今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的CRUD接口直接调用,方便快捷,不用再写复杂的sql,带吗简单易懂,话不多说上方法
1、Utils.java工具类中的方法
/** 2 * 获取Sort * * @param direction - 排序方向 * @param column - 用于排序的字段 */ public static Sort getSort(String direction,String column){ Sort sort = null; if(column == null || column == "") return null; if(direction.equals("asc")||direction.equals("ASC")){ sort = Sort.by(Sort.Direction.ASC,column); }else { sort = Sort.by(Sort.Direction.DESC,column); } return sort; } /** * 获取分页 * @param pageNumber 当前页 * @param pageSize 页面大小 * @param sort 排序;sort为空则不排序只分页 * @return 分页对象 */ public static Pageable getPageable(int pageNumber,int pageSize,Sort sort){ if(sort!=null){ return PageRequest.of(pageNumber,pageSize,sort); } return PageRequest.of(pageNumber,pageSize); } /** * 判断String是否为空 * @param str * @return */ private static boolean isEmpty(String str){ if(str.equals(null)||str.equals("")) return true; return false; }2、实现类
这里查询相关参数是前端传的,所以用默认值了,查询条件可以是多条件动态,排序也可以是动态的,只要传排序字段和排序方向对号入座即可。
@Overridepublic Page<User> findAll() { // 创建测试对象 User user = new User(); user.setName("1"); Sort sort = Utils.getSort("asc","name"); Pageable pageable = Utils.getPageable(0,5,sort); // 调用组装查询条件方法 Specification<User> spec = getSpecification(user); return userRepository.findAll(spec,pageable);}/** * 组装查询条件 * @param user -查询相关对象 * @return 返回组装过的多查询条件 */private Specification<User> getSpecification(User user) { Specification<User> specification = new Specification<User>() { @Override public Predicate toPredicate(Root<User> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) { List<Predicate> predicates = new ArrayList<>(); // 判断条件不为空 if(!Utils.isEmpty(user.getName())){ predicates.add(criteriaBuilder.like(root.get("name"),user.getName())); } return criteriaQuery.where(predicates.toArray(new Predicate[predicates.size()])).getRestriction(); } }; return specification;}3.repository类中这么写
@Repository
public interface UserRepository extends JpaRepository<User, Integer>, JpaSpecificationExecutor<User> {}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
上篇文章给大家介绍DataGridView使用自定义控件实现简单分页功能,本篇使用BindingNavigator来实现简单分页功能。其实也只是借用了一个Bin
网页的分页功能的实现比较简单,实现方法也多种多样。今天总结一个简单的Jsp真分页实例。首先,提到分页就要先明确一个概念,何为真分页何谓假分页。假分页:一次性从数
前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视)这里用基础的三层架构+servl
这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即
本文实例为大家分享了Java实现分页功能的具体代码,供大家参考,具体内容如下不用根据改变SQL的形式去查询;直接查询所有的数据,根据页码自动显示数据;分页对象p