当前位置: 首页 > news >正文

网站设计公司有用吗中国住房与城乡建设部网站

网站设计公司有用吗,中国住房与城乡建设部网站,软件开发步骤包括哪些,上海建设人才网证书查询在我们平时的工作中#xff0c;查询列表在我们的系统中基本随处可见#xff0c;那么我们如何使用jpa进行多条件查询以及查询列表分页呢#xff1f;下面我将介绍两种多条件查询方式。1、引入起步依赖org.springframework.bootspring-boot-starter-weborg.springframework.boo…在我们平时的工作中查询列表在我们的系统中基本随处可见那么我们如何使用jpa进行多条件查询以及查询列表分页呢下面我将介绍两种多条件查询方式。1、引入起步依赖org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-thymeleaforg.springframework.bootspring-boot-starter-data-jpa2、对thymeleaf和jpa进行配置打开application.yml添加以下参数以下配置在之前的文章中介绍过此处不做过多说明spring:thymeleaf:cache:truecheck-template-location: truecontent-type: text/htmlenabled:trueencoding: utf-8mode: HTML5prefix: classpath:/templates/suffix: .htmlexcluded-view-names:template-resolver-order:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/restful?useUnicodetruecharacterEncodingUTF-8useSSLfalseusername: rootpassword: rootinitialize:trueinit-db: truejpa:database: mysqlshow-sql: truehibernate:ddl-auto: updatenaming:strategy: org.hibernate.cfg.ImprovedNamingStrategy3、编写实体BeanEntityTable(namebook)public class Book {IdGeneratedValue(strategy GenerationType.IDENTITY)Column(name id, updatable false)private Long id;Column(nullable false,name name)private String name;Column(nullable false,name isbn)private String isbn;Column(nullable false,name author)private String author;public Book (String name,String isbn,String author){this.name name;this.isbn isbn;this.author author;}public Book(){}//此处省去get、set方法}public class BookQuery {private String name;private String isbn;private String author;//此处省去get、set方法}4、编写Repository接口Repository(bookRepository)public interface BookRepository extends JpaRepository,JpaSpecificationExecutor {}此处继承了两个接口后续会介绍为何会继承这两个接口5、抽象service层首先抽象出接口public interface BookQueryService {Page findBookNoCriteria(Integer page,Integer size);Page findBookCriteria(Integer page,Integer size,BookQuery bookQuery);}实现接口Service(valuehttps://my.oschina.net/wangxincj/blog/bookQueryService)public class BookQueryServiceImpl implements BookQueryService {ResourceBookRepository bookRepository;Overridepublic Page findBookNoCriteria(Integer page,Integer size) {Pageable pageable new PageRequest(page, size, Sort.Direction.ASC, id);return bookRepository.findAll(pageable);}Overridepublic Page findBookCriteria(Integer page, Integer size, final BookQuery bookQuery) {Pageable pageable new PageRequest(page, size, Sort.Direction.ASC, id);Page bookPage bookRepository.findAll(new Specification(){Overridepublic Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) {List list new ArrayList();if(null!bookQuery.getName()!.equals(bookQuery.getName())){list.add(criteriaBuilder.equal(root.get(name).as(String.class), bookQuery.getName()));}if(null!bookQuery.getIsbn()!.equals(bookQuery.getIsbn())){list.add(criteriaBuilder.equal(root.get(isbn).as(String.class), bookQuery.getIsbn()));}if(null!bookQuery.getAuthor()!.equals(bookQuery.getAuthor())){list.add(criteriaBuilder.equal(root.get(author).as(String.class), bookQuery.getAuthor()));}Predicate[] p new Predicate[list.size()];return criteriaBuilder.and(list.toArray(p));}},pageable);return bookPage;}}此处我定义了两个接口findBookNoCriteria是不带查询条件的findBookCriteria是带查询条件的。在此处介绍一下上面提到的自定义Repository继承的两个接口如果你的查询列表是没有查询条件只是列表展示和分页只需继承JpaRepository接口即可但是如果你的查询列表是带有多个查询条件的话则需要继承JpaSpecificationExecutor接口这个接口里面定义的多条件查询的方法。当然不管继承哪个接口当你做分页查询时都是需要调用findAll方法的这个方法是jap定义好的分页查询方法。findBookCriteria方法也可以使用以下方法实现大家可以自行选择Overridepublic Page findBookCriteria(Integer page, Integer size, final BookQuery bookQuery) {Pageable pageable new PageRequest(page, size, Sort.Direction.ASC, id);Page bookPage bookRepository.findAll(new Specification(){Overridepublic Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) {Predicate p1 criteriaBuilder.equal(root.get(name).as(String.class), bookQuery.getName());Predicate p2 criteriaBuilder.equal(root.get(isbn).as(String.class), bookQuery.getIsbn());Predicate p3 criteriaBuilder.equal(root.get(author).as(String.class), bookQuery.getAuthor());query.where(criteriaBuilder.and(p1,p2,p3));return query.getRestriction();}},pageable);return bookPage;}6、编写Controller针对有查询条件和无查询条件我们分别编写一个Controller默认每页显示5条如下ControllerRequestMapping(value https://my.oschina.net/queryBook)public class BookController {AutowiredBookQueryService bookQueryService;RequestMapping(/findBookNoQuery)public String findBookNoQuery(ModelMap modelMap,RequestParam(value https://my.oschina.net/wangxincj/blog/page, defaultValue https://my.oschina.net/wangxincj/blog/0) Integer page,RequestParam(value https://my.oschina.net/wangxincj/blog/size, defaultValue https://my.oschina.net/wangxincj/blog/5) Integer size){Page datas bookQueryService.findBookNoCriteria(page, size);modelMap.addAttribute(datas, datas);return index1;}RequestMapping(value https://my.oschina.net/findBookQuery,method {RequestMethod.GET,RequestMethod.POST})public String findBookQuery(ModelMap modelMap, RequestParam(value https://my.oschina.net/wangxincj/blog/page, defaultValue https://my.oschina.net/wangxincj/blog/0) Integer page,RequestParam(value https://my.oschina.net/wangxincj/blog/size, defaultValue https://my.oschina.net/wangxincj/blog/5) Integer size, BookQuery bookQuery){Page datas bookQueryService.findBookCriteria(page, size,bookQuery);modelMap.addAttribute(datas, datas);return index2;}}7、编写页面首先我们编写一个通用的分页页面新建一个叫page.html的页面xmlns:thhttp://www.thymeleaf.orgxmlns:layouthttp://www.ultraq.net.nz/thymeleaf/layoutlayout:decoratorpage首页上一页${pageNumber}下一页尾页针对无查询条件的接口创建一个名为index1.html的页面并引入之前写好的分页页面如下TitleIDnameisbnauthor${obj.id}${obj.name}${obj.isbn}${obj.author}针对有查询条件的接口创建一个名为index2.html的页面并引入之前写好的分页页面如下 Title name isbn author 查询 IDnameisbnauthor${obj.id}${obj.name}${obj.isbn}${obj.author}ok代码都已经完成我们将项目启动起来看一下效果。大家可以往数据库中批量插入一些数据访问http://localhost:8080/queryBook/findBookNoQuery显示如下页面访问http://localhost:8080/queryBook/findBookQuery显示页面如下可以输入查询条件进行带条件的分页查询ok以上便是一个简单的jap分页查询功能的实现。
http://www.yutouwan.com/news/159436/

相关文章:

  • 网站 封锁右键怎么自己做一个网址
  • 广西建设网站深圳网站建设那家好
  • 汕头网站推广优化全球采购网登录
  • 自助建站系统软件政务服务网站建设资金
  • 临夏州建设局网站做网站要准备哪些
  • 湛江网站建设公司哪家好诚信网站建设
  • 企业建设网站的步骤是什么?网站开发与维护的相关大学
  • 深圳光明建设局官方网站江门网站建设价格
  • 广州互邦物流网络优化建站怎么把网址做成网页链接
  • 建立企业网站要多少钱做个企业网站的公司
  • 旅游网站功能模块建一个淘宝客网站要多少钱
  • 广州黄埔做网站公司哪家好站长统计官网
  • 东莞微联建站带分页的wordpress模板
  • 临汾网站开发驻马店app和网站开发公司
  • 中国建设银行网上银行网站特点有哪些网站设计比较好的公司
  • 南昌营销网站公司哪家好做像58同城样的网站
  • 淘宝请人做网站被骗wordpress添加简码
  • 单位网站的作用南京环力建设有限公司网站
  • 杭州营销网站制作有哪些网站下载ppt是免费的
  • 长春网站开发公司哪家好中国建设银行积分网站
  • 五百亿网站搬家公司阿里云备案 网站备案域名
  • 网站网站建设网页设计大埔建设工程交易中心网站
  • 网站开发需要自己写代码吗网站空间 按流量计费
  • 深圳聘请做网站人员app移动应用软件开发
  • 青海建设厅网站首页wordpress上传视频人50
  • 旅游网站项目评估个人网页框架模板
  • 网站收录量潍坊网络营销外包
  • 晋州专业网站建设山西疾控最新通告今天
  • 中国建设银行积分网站可以搜索任何网站的浏览器
  • 关于解决网站 建设经费的请示什么直播可以做游戏视频网站吗