SpringBoot JPA实践之Example对象查询

Springboot jpa提供了一种对象查询的实现,我们使用它可以实现基于对象的动态查询,在一些涉及原生sql查询的场景还是使用较多,较之于下图中的常规写法,我们只传递对象,控制对象中属性值即可实现基于参数的动态查询,参考如下图所示: 定义Repository类 根据 id 查询一条数据 根据 name 和 email 查询数据并按 name 和 sex 排序 根据 name 、email 、sex 、id查询,指定name为like模糊查询,id 不为空时的属性忽略 根据 name 模糊查询分页,按 name 与 email 排序 Example查询使用场景 (1)单表查询; (2)简单查询; Example示例代码知识点 (1)按非空属性等值查询; (2)like模糊查询; (3)非空属性的查询忽略; (4)多个属性的一致排序; (5)多个属性的正序、倒序排序并存; (6)分页查询;...

文章分类:后端一部分 Spring Boot Jpa

JPA

SpringBoot JPA实践之方法属性名查询

在前一篇提到Spring JPA提供了众多方法,但往往在很多时候我们也都是直接使用最简洁方便的方式进行调用,本文称之它为简单查询,即:解析方法名称的特殊定义来实现方法查询,这API也是真的敢这么干,佩服佩服,再加上IDEA的强大提示,写起来真的是非常的方便,以至于我们需要在接口中编写自定义查询时,通过定义方法名实现,参考如下: 一般查询方法约定以query、find、get开头的规范,在输入上述开头时IDEA自动给出对应的方法提示,而后选择一项后继而提示Entity中的属性,再选择属性后弹出下一个查询条件的连接符,创建查询方法提示参考如下: 本文通过两个示例来体验一下这种所谓的简单查询,它提供了非常强大的匹配模式与逻辑,可满足多种场景的实际需要,示例分别是两个参数的等值查询与范围查询,范围查询给出使用Between and 与 like 的模糊搜索方式,比较简单,参考如下: 查询输出sql...

文章分类:后端一部分 Spring Boot Jpa

JPA

SpringBoot JPA实践之API介绍

由于继承了BaseRepository类,给我们的Repository接口类增强了许多的方法,比如:批量保存、批量删除、查询一条对象、查询对象集合、Example对象查询、Specification分页查询等,它们均能够满足大多数的日常需要,本文走起一个保存数据和查询所有数据列表的简单调用实现,后续慢慢增强,BaseRepository的所有方法定义如下图所示: UserRepository:空接口,所使用的方法使用父接口中定义的(接口动态代理实现,本站也有几篇接口实现代理的示例),如下: UserServiceImpl:省略UserService,定义保存方法、查询所有方法的实现,如下: UserBasicTest:测试保存数据与查询所有数据,如下: 注 上述许多内容已经过时和过期了,留存本篇文章仅为方便个人查看,原始文章的信息参考: 原始链接:https://www.chendd.cn...

文章分类:后端一部分 Spring Boot Jpa

JPA

SpringBoot JPA实践之自动生成Entity

SpringBoot JPA实践之自动生成Entity,也可以说是IntelliJ IDEA反向生成Javabean,具体的实现可参考之前有一篇名为《IntelliJ IDEA反向生成Javabean(锲合度100%)》的分享(本站右上角的关键字搜一搜),它的实现是满足个人日常使用MybatisPlus + lombok + Swagger完美结合,类与字段的注释均为动态获取,由于本次使用到JPA,故在深入之前,将之前的基于MybatisPlus的实现修改为使用JPA的Entity动态实现,套路一样,仍然是采用IntelliJ IDEA + Groovy语言实现,IDEA配置Database的详细过程参考前面的,重点在于Generate POJOs.groovy文件的代码,具体如下。 Generate POJOs.groovy 生成Entity文件代码 Entity生成细节 (1)通过设置...

文章分类:后端一部分 Spring Boot Jpa

JPA

SpringBoot JPA实践之BaseRepository

大到Java语言三大特征之一的封装,小到一个层面类的API往往都需要我们进行封装,比如统一的异常封装、BaseController、BaseService、BaseDao、BaseRepository等等等等,抽象出来它们共有的东西为Base,简化日常项目中的实现。本文重点在于SpringBoot整合Jpa的BaseRepository实现。 将Repository的父类统一封装为BaseRepository有以下几点优势: (1)符合规范的约定,在JPA的Repository接口中有包含3个不同的工作,不用专门特别的记录它们都是什么,都有什么特效,一律以Base开头,当然JPA默认的Repository实现类则是SimpleJpaRepository; (2)期望对现有的JPA方法实现做增强或者实现个性化的业务功能; (3)抽象EntityManager对象,便于直接使用该对象中的API...

文章分类:后端一部分 Spring Boot Jpa

JPA

SpringBoot JPA实践之框架搭建

基本介绍 JPA是Sun定义的一套持久化标准规范,其目的在于简化应用开发工作,并希望整合ORM技术,实现数据库持久层的大一统,所以单纯的Java JPA并不提供具体实现,实现被使用最广泛的应数Hibernate,Spring Data项目又将Hibernate JPA的使用进行了一个整合,故又有了Spring Data JPA(如同JDBC一样,所有的cao作面向接口,具体的实现则由数据库厂商提供的驱动类去完成。还类似WEB开发中的W3C组织,它是HTML规范的制定者,但它不提供实现,具体实现由浏览器厂商Internet Explorer、Chrome等浏览器厂商去做),本文则使用Spring Boot 整合 JPA 来搭建一个应用框架。 说起JPA那还是在十年前用过JPA,现在看来当时全注解版的S2SH应该还算比较靠谱的框架了,当时所使用的注解版Hibernate实现,其实就是本文所说的...

文章分类:后端一部分 Spring Boot Jpa

JPA
本站信息

 运营时间: 天

 用户数量: 人

 文章数量: 篇

 评论数量: 条

 点赞个数: 个

 最后更新:

标签云