今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的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、实现类

这里查询相关参数是前端传的,所以用默认值了,查询条件可以是多条件动态,排序也可以是动态的,只要传排序字段和排序方向对号入座即可。

@override

public page findall() {

// 创建测试对象

user user = new user();

user.setname("1");

sort sort = utils.getsort("asc","name");

pageable pageable = utils.getpageable(0,5,sort);

// 调用组装查询条件方法

specification spec = getspecification(user);

return userrepository.findall(spec,pageable);

}

/**

* 组装查询条件

* @param user -查询相关对象

* @return 返回组装过的多查询条件

*/

private specification getspecification(user user) {

specification specification = new specification() {

@override

public predicate topredicate(root root, criteriaquery> criteriaquery, criteriabuilder criteriabuilder) {

list 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, jpaspecificationexecutor {}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

java实现分页打印功能_Java简单高效实现分页功能相关推荐

  1. java 实现ps功能_java 简单图片,可以实现ps的几个小滤镜

    java 简单图片,可以实现ps的几个小滤镜 以下教你实现图片马赛克,黑白画,珠纹化,油画效果等处理技术原理及实现.看完自己也可以简单的玩一玩. 1. 需要用到的包 java.awt // 用于创建用 ...

  2. 怎么实现java和数据库的链接_JAVA简单链接Oracle数据库,实现注册和登陆的功能

    //User 用户的基本信息,也是USERINFO表中的3个列 package 登陆判断; public class User { private String name; private Strin ...

  3. java while语句打印三角形_java基础之五小节带你走进java流程控制—多重循环

    四.多重循环 在一个循环语句内部再嵌套一个或多个循环,称为多重循环/嵌套循环.while.do-while与for循环可以任意嵌套,可以嵌套任意多层.一般工作中多见的就是两层. 4.1 多重循环 打印 ...

  4. java用for打印正方形_Java程序为给定的整数打印正方形图案

    要为给定的整数打印正方形图案,Java代码如下- 示例import java.util.*; import java.lang.*; public class Demo{ public static  ...

  5. 一种通过配方功能实现简单高效控制的方法

     前言 物联网的应用大多基于对各种数据的采集和控制,而一般的工程项目中产生的数据数量都很庞大,若是在应用过程中没有便捷的工具,手动处理其中每一个数据,势必会耗费大量的时间,效率非常低下,产生高额人力成 ...

  6. java取余位运算_java学习--高效的除模取余运算(n-1)hash

    没有测试过使用取余运算符和位运算符都做同一件事时的时间效率! 取余运算符% 如3除以2取余数 int a = a = a%; 结果为1 上面是传统的方式进行求余运算. 需要先将10进制转成2进制到内存 ...

  7. java淡蓝色怎么表示_JAVA正则表达式4种常用功能 [转]

    JAVA正则表达式4种常用功能 正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持 下面简单的说下它的4种常用功能: 查询: 以下是代码片段: String str=&quo ...

  8. java jsp中的日历表_JAVA简单的日历程序

    JAVA简单的日历程序 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 /**以下是日历的代码程序 有疑问 回信 ycj@18e.net **/ //Cale ...

  9. java 等比缩放图片_java处理图片按比例缩放功能

    java中的图片按比例缩放功能 1. 按固定长宽进行缩放 /* * 图片缩放,w,h为缩放的目标宽度和高度 * src为源文件目录,dest为缩放后保存目录 */ public static void ...

最新文章

  1. 有没有可以翻译c语言程序的软件下载,程序员秒懂!分享一款很优雅的翻译软件...
  2. python连接中控考勤机分析数据
  3. 基于事件驱动架构构建微服务第10部分:在docker容器内运行单元测试
  4. versions-maven-plugin插件批量修改版本号
  5. android 印度语_为什么发展印度语维基百科至关重要
  6. 数值计算方法(三)——变步长梯形法与龙贝格算法
  7. html网页跳转触发器,trigger button
  8. 结构数组-创建结构数组---获取修改结构数组数据-------操作字段
  9. vue框架+cesium项目怎么才能运行成功
  10. 产品体验报告:在行APP分析
  11. 这就是神经网络 7:深度学习-目标检测-超详细图解Faster R-CNN
  12. 计算机网络技术毕业生实习报告_20XX计算机网络技术毕业生实习报告1000字
  13. educator计算机技术基础答案,计算机教育技术基础,technical basis of computer education,音标,读音,翻译,英文例句,英语词典...
  14. DirectX11参考资料之美
  15. 分体式降噪耳机有哪些?高配置分体式降噪耳机排行榜
  16. android开发中论坛帖子图片的排版
  17. 基于MFC实现大华监控摄像头Demo(视频流和抓图)
  18. 百度搜索URL参数你知道多少
  19. C语言指针中P、*P、P、**P的区别
  20. originos系统和鸿蒙系统哪个好用,originos和emui11哪个好用 originos和emui11使用对比...

热门文章

  1. Linux通过系统函数设置系统时间
  2. Windows 7个性化配置,关闭Win7动画效果,设置窗口背景为“ 豆绿色”,移动“我的文档”...
  3. c++实现高速缓存Cache
  4. WPS衍生新软件,填补一大缺憾,让office汗颜,Excel用户很开心
  5. python将工作表根据一列拆分成多个独立的sheet工作薄
  6. 史上最简单MySQL教程详解(进阶篇)之视图
  7. 【阅读笔记】联邦学习实战——联邦学习智能用工案例
  8. tp+layui 时间戳转换
  9. wmware16如何安装win7---超详细
  10. Spring源码分析之推断构造方法(一)