学习周结10

一、思维导图

在这里插入图片描述

二、JPA的概念

JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面。值得注意的是,JPA是在充分吸收了现有Hibernate,TopLink,JDO等ORM框架的基础上发展而来的,具有易于使用,伸缩性强等优点。从目前的开发社区的反应上看,JPA受到了极大的支持和赞扬,其中就包括了Spring与EJB3.0的开发团队。

Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!

三、JPA注解:

在这里插入图片描述

四、JPA 的优点

  • 无须依赖mybatis等框架,无xml。
  • 适用于表相互关联性不大的场景,使用jpa会使项目更精简。
  • java创建号实体及实体的表信息,运行项目,数据库中就会生成对应的表,使用jpa的项目有利于项目移植。
  • dao接口继承Jpa的Repository后,就可以直接调用其已有方法进行数据表进行操作,如数据的增删改,分页,排序。
  • 可直接根据id进行条件查询,指定列的条件查询只需要在dao中按jpa的语法(方法名驼峰命名),写个相关的抽象方法就可以使用查询功能了。
  • 需要写hql的,可在dao中所需抽象方法上,使用对应注解(如-@Query…),注解的括号里书写相关hql。

五、缺点

  • 分页时,起始值或起始值加分页大小超过总大小的话,会查不到数据。
  • 复杂的查询场景使用起来比较费劲,比如条件搜索+分页+排序,需要Example、Sort、PageRequest类都使用方可。
  • 注解式的hql中表名、列名不能是参数,不利于表查询的灵活使用。
  • 注解式的hql中无分页语法。
  • jpa在注解中使用原生sql时,会把所在方法的形参类型格式化,比如字符串会加上单引号。
  • 分页不能与jpa Repository接口结合复用,比较费劲。

六、关键字

在这里插入图片描述

七、添加依赖

  • 如果您已经勾选了 勾选SQL选项的 Spring Data JPA , MySQL,那么无须手动增加依赖。
<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-webflux</artifactId>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

八、JPA自带的几种主键生成策略

  1. TABLE: 使用一个特定的数据库表格来保存主键
  2. SEQUENCE: 根据底层数据库的序列来生成主键,条件是数据库支持序列。这个值要与generator一起使用,generator
    指定生成主键使用的生成器(可能是orcale中自己编写的序列)
  3. IDENTITY: 主键由数据库自动生成(主要是支持自动增长的数据库,如mysql)
  4. AUTO: 主键由程序控制,也是GenerationType的默认值

九、SpringBoot JPA提供的核心接口

  1. Repository接口

  2. CrudRepository接口

  3. PagingAndSortingRepository接口

  4. JpaRepository接口

  5. JPASpecificationExecutor接口

十、Repository接口的使用

  • 提供了方法名称命名查询方式
  • 提供了基于@Query注解查询与更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值