spring-boot-jpa

Spring Data 简介

      Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问技术,包括非关系数据库、
Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的访问支持

Spring Data JPA是Spring Data的子项目,如下图,用于关系型数据库的操作,本文将会结合spring-boot使用,故标题叫spring-boot-jpa

官网介绍:https://spring.io/projects/spring-data

SpringData特点

SpringData为我们提供使用统一的API来对数据访问层进行操作;这主要是Spring Data
Commons项目来实现的。 Spring Data Commons让我们在使用关系型或者非关系型数据访问
技术时都基于Spring提供的统一标准,标准包含了CRUD(创建、获取、更新、删除)、查询、
排序和分页的相关操作。
 

1.Spring Data JPA 统一的Repository接口


Repository<T, ID extends Serializable>:统一接口

  1. 基于乐观锁机制:RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>>

  2. 基本CRUD操作:CrudRepository<T, ID extends Serializable>
  3. 基本CRUD及分页:PagingAndSortingRepository<T, ID extends Serializable>

 2.Spring Data JPA


1)、 JpaRepository基本功能
编写接口继承JpaRepository既有crud及分页等基本功能
2)、定义符合规范的方法命名
在接口中只需要声明符合规范的方法,即拥有对应的功能,注意方法名必须根据提示写,否则无效


3)、 @Query自定义查询,定制查询SQL
4)、 Specifications查询(Spring Data JPA支持JPA2.0的Criteria查询)

SpringDataJpa与JPA规范

JPA规范是J2EE的一个规范,也成为JSR 317 包含使用注解简化数据库操作,而实现又非常多

例如JPA规范至少有3种实现方法(hibernate,toplink,openjpa),SpringDataJpa对这3种实现进行封装,会1个等于会3个,这这样简化了底层数据的访问,默认hibernate访问数据库

3.详细使用

    3.1 实体类 entity

@Entity(name = "tb_item")//表名
public class ItemEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(nullable = false, columnDefinition = "varchar(100) COMMENT '商品标题'")
    private String title;

    @Column(precision = 10, scale = 4, columnDefinition = "COMMENT '商品价格,单位为:分'")
// 整数位数是10-4=6位,超过及报错,小数是4位,不足补0,超过就四舍五入
    private BigDecimal price;

}

   3.2 Repository

@Repository
public interface ItemRepository extends JpaRepository<ItemEntity, Long> {
}

    3.3 基本配置 yml

spring:  
 jpa:
    hibernate:
#     更新或者创建数据表结构
      ddl-auto: update
#    控制台显示SQL
    show-sql: true

   3.4 entity与mysql数据库类型映射

   3.5 遗留问题

LocalDateTime 默认字符串格式是  2019-11-23T21:44:41.645

不知道为什么,用如下方式不生效

spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值