简介

尚硅谷 --佟刚 2小时快速入门
看着像 16年左右发布的视频
SpringData源码级讲授,快速上手迅速入门
https://www.bilibili.com/video/BV1w64y1c7dJ?p=1

P1_概述 02:36
P2_HelloWorld 19:50
P3_Repository接口 10:09
P4_Repository查询方法定义规范 18:40
P5_Query注解 15:19
P6_Modifying注解 09:01
P7_CrudRepository接口 05:00
P8_PagingAndSortingRespository接口 12:03
P9_JpaRepository接口 03:58
P10_JpaSpecificationExecutor接口 14:44
P11_自定义 Repository 方法 05:44

详情

P1_概述 02:36

P2_HelloWorld 19:50


<!-- 1,配嚣数据源–->I
<!-- 2。配置JPA的 EntityManagerFactory -->
<!-- 3,配置事务管理器-->
<!-- 4。配置支持注解的事务-->
<!-- 5。配置SpringData] -->

P3_Repository接口 10:09

P4_Repository查询方法定义规范 18:40

*在 Repository子接口中声明方法
*1。不是随便声明的。而需要符合一定的规范
*2。查询方法以find \ read l get开头
*3。涉及条件查询时,条件的属性用条件关键字连接

  • 4。要注意的是:条件属性以首字母大写。

//根据 1astName来获取对应的 Person
Person getByLastName(string lastName);
//WHERE lastName LIKE ?%AND id < ?
List<Person> getByLastNameStartingWithAndIdLessThan(String lastName,Integer id);
// wHERE lastName LIKE %?AND id <?
List<Person> getByLastNameEndingWithAndIdLessThan(String lastName,Integer id);
//WHERE email IN ?, ?, ?) OR birth < ?
List<Person>getByEmailInOrBirthLessThan(List<string> emails, Date birth);


5,支持属性的级联查询。若当前类有符合条件的属性,则优先使用,而不使用级联属性。
若需要使用级联属性,则属性之间使用_进行连接。

P5_Query注解 15:19

//查询id 值最大的那个Person
//使用@Query 注解可以自定义JPQL语句以实现更灵活的查询
Query("SELECT p FROM Person p wHERE p.id = (SELECT max(p2.id) FROM Person p2)")
Person getMaxIdPerson();//为@Query注解传递参数的方式1:使用占位符。
@Query("SELECT p FROM Person p WHERE p.lastName = ?1 AND p.email = ?2")
List<Person> testQueryAnnotationParams1(String lastName,string email);
为@Query注解传递参数的方式1:命名参数的方式。@Query("SELECT p FROM Person p WHERE p.lastName = :lastName AND p.email = :emai1")
List<Person> testQueryAnnotationParams2(@Param("email") String email,@Param("lastName") String lastName);SpringData允许在占位符上添加%%。
@Query("SELECT p FROM Person p WHERE p.lastName LIKE %?1% OR p.email LIKE %?2%"")
List<Person> testQueryAnnotationLikeParam(String lastName,String email);SpringData允许在占位符上添加%%。
@Query("SELECT p FROM Person p WHERE p.lastName LIKE %:1astName% OR p.email LIKE %:emai1%"")
List<Person> testQueryAnnotationLikeParam2(@Param("emai1") String email,@Param("lastName " ) String lastName);/设置nativeQuery=true即可以使用原生的SQL查谊
@Query(value="SELECT count(id) FROM jpa_persons", nativeQuery=true)
long getTotalcount();

P6_Modifying注解 09:01

//可以通过自定义的JPQL完成UPDATE和DELETE操作。注意:JPQL不支持使用INSERT
//在@Query注解中编写JPQL语句,但必须使用@CModifying 进行修饰。以通知SpringData,这是一个UPDATE或DELETE操作
//UPDATE 或 DELETE 操作需要使用事务,此时需要定义Service层。在Service层的方法上添加事务操作。
//默认情况下,SpringData的每个方法上有事务,但都是一个只读事务。他们不能完成修改操作!@Modifying
@Query("UPDATE Person p SET p.email = :email WHERE id = :id")
void updatePersonEmail(@Param("id") Integer id,@Param(" emai1") string email);

JPQL 不支持insert

P7_CrudRepository接口 05:00

P8_PagingAndSortingRespository接口 12:03

Pageable
Sort

P9_JpaRepository接口 03:58

P10_JpaSpecificationExecutor接口 14:44

需要关注,

/**
*目标:实现带查询条件的分页。
*调用JpaSpecificationExecutor的 Page<T> findAll(Specification<T> spec,Pageable pageable);
*Specification:封装了JPA Criteria查询的查询条件
* Pageable:封装了请求分页的信息:例如pageNo,pagesize,Sort*/@Testpublic void testpaSpecificationExecutor(){int pageNo = 3 - 1;int pagesize = 5;PageRequest pageable = new PageRequest(pageNo,pagesize);/通常使用Specification的匿名内部类Specification<Person> specification = new Specification<Person>() {/**
*@param *root:代表查询的实体类。
*@param query:可以从中可到Root对象,即告知JPA Criteria 查询要查询哪一个实体类。还可以
*来添加查询条件,还可以结合EntityManager对象得到最终查询的TypedQuery对象。
*param *cb: CriteriaBuilder对象。用于创建Criteria 相关对象的工厂。当然可以从中获取到Predicate对象
*@return : *Predicate 类型,代表一个查询条件。
*/@overridepublic Predicate toPredicate(Root<Person> root,CriteriaQuery<?>query,criteriaBuilder cb) {Path path = root.get("id");Predicate predicate = cb.gt(path,5);return predicate;}System.out.print1n("总记录数:" + page.getTotalE1ements());System.out.print1n("当前第几页:" +(page.getNumber() + 1));System.out.println("总页数:" + page.getTotalPages());System.out.println("当前页面的List: " + page.getContent());System.out.println("当前页面的记录数:"+ page.getNumber0fElements());};Page<Person> page = personRepsotory.findAll(specification,pageable);}


P11_自定义 Repository 方法 05:44



尚硅谷 --佟刚 SpringData JPA相关推荐

  1. SSM开发笔记-尚硅谷-佟刚-Spring4.0.0

    1.Spring 1.1 IOC 控制反转,在Spring中的实现形式是依赖注入DI. 例如,最直接的好处就是,假设一个人类对象有一个父亲对象,最初的话需要人类对象主动初始化父亲对象,而当父亲对象的构 ...

  2. 尚硅谷全套课件整理:Java、前端、大数据、安卓、面试题

    目录 Java 尚硅谷 IT 精英计划 JavaSE 内部学习笔记.pdf 尚硅谷 Java 基础实战之银行项目.pdf 尚硅谷 Java 技术之 JDBC.pdf 尚硅谷 Java 技术之 Java ...

  3. 佟刚老师《Spring4视频教程》学习笔记(1)--转载

    该学习笔记对应的视频文件为尚硅谷佟刚老师的<Spring教程>之(视频文件). 一.Spring 是什么? Spring 是一个开源框架. Spring 为简化企业级应用开发而生. 使用 ...

  4. JavaWeb学习总结——JavaWEB_Servlet(尚硅谷_佟刚老师)

    JavaWEB_Servlet(尚硅谷_佟刚老师) (本文档是在学习尚硅谷_佟刚老师的JavaWeb教学视频时写的,特此感谢) 1. 使用 JavaEE版的 Eclipse开发动态的 WEB工程(Ja ...

  5. 尚硅谷python培训怎么样

    为了给需要了解机构情况的同学提供最真实的信息,训哥儿解锁新栏目--机构测评. 每周测评一期,每期一家机构,每次采访4-6名该机构的学员,调查机构内部信息,给大家提供最可靠的参考. 第八期机构测评已经在 ...

  6. 总结尚硅谷的视频springboot视频

    这16个章节也就讲个大概,更多内容需要你自己去学习. 第1章尚硅谷SpringBoot入门 P01.尚硅谷_SpringBoot_入门-课程简介 P02.尚硅谷_SpringBoot_入门-Sprin ...

  7. 尚硅谷Java、HTML5前端、全栈式开发视频

    Java基础阶段: 一.20天横扫Java基础(课堂实录) https://pan.baidu.com/s/1htTzZRQ 二.尚硅谷Java基础实战--Bank项目 http://pan.baid ...

  8. {转发}尚硅谷资料集锦

    2018年05月18日 20:13:25 寒夕若梦 阅读数:8093 Java基础阶段 一. 20天横扫Java基础(课堂实录) https://pan.baidu.com/s/1htTzZRQ 二. ...

  9. 尚硅谷《全套Java、Android、HTML5前端视频》

    尚硅谷<全套Java.Android.HTML5前端视频> (百万谷粉推荐:史上最牛.最适合自学的全套视频.资料及源码) [尚硅谷官网资料导航] 谷粒学院在线学习:http://www.g ...

最新文章

  1. windows平台HTTP代理server搭建(CCproxy)
  2. 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
  3. \x49\x51\x5a\x56\x54\ 这种是什么编码?(16进制编码)
  4. c++反射机制(vcl实现),mfc可依样实现
  5. Linux系统(四)LVS集群负载均衡NAT模式
  6. PHP 如何阻止用户上传成人照片或者裸照
  7. 使用 LLVM 实现一个简单编译器
  8. java学习明确的路线规划奉上,助大家进阶
  9. ROS笔记(15) Xacro
  10. java小工程_Java进阶:阶段性小工程
  11. javascript中new url()属性,轻松解析url地址
  12. java 读CSV 和 Excel
  13. 如何在Mac系统清理 “其他” 中文件和数据
  14. 30.磁盘 I/O 问题
  15. win11微软拼音输入法失效、没有候选框、不显示语言栏的问题
  16. 买房? 上区块链, 安排! 全国首张不动产区块链电子凭证诞生
  17. 产品思维训练 | 亚马逊流量7-8月网站访客流量下降,请分析原因
  18. 使用 istringtream 注意其状态
  19. matlab的simulink中的normal模式acclerator等模式的选择方法
  20. 解决php报错Warning: date(): It is not safe to rely on the system's timezone settings

热门文章

  1. Android代理模式(静态代理,动态代理,Retrofit代理模式分析)
  2. 无线发射芯片A7105在RF短距离通信的应用
  3. (十六)记录 -- 1. 数据记录的概念
  4. 从键盘读入10个的整数,判断正数和负数的个数
  5. 分享给你——2017我学到的方法论
  6. VS2019 配色_NBA球员上脚:基德穿AJ13湖人配色,莫兰特的保罗乔治4代
  7. scrollTo 平滑滚动
  8. mac 桌面分屏软件_6款好用的Mac分屏软件推荐
  9. live555 android,Android之live555构建RTSP Server
  10. 微波战术通信系统空域抗干扰方法综述